首先,安装所需的依赖项,可以使用npm或yarn进行安装:
$ npm install express axios
接下来,创建一个名为service1.js
的文件,用于实现第一个微服务:
javascript
const express = require('express');
const axios = require('axios');
const app = express();
const port = 3001;
app.get('/service1', async (req, res) => {
try {
// 发起 HTTP 请求到另一个微服务
const response = await axios.get('http://localhost:3002/service2');
// 处理响应数据
const data = response.data;
// 返回响应给客户端
res.json({ message: 'Hello from Service 1', data });
} catch (error) {
console.error(error);
res.status(500).json({ error: 'Internal Server Error' });
}
});
app.listen(port, () => {
console.log(`Service 1 is running on http://localhost:${port}`);
});
然后,创建一个名为service2.js
的文件,用于实现第二个微服务:
javascript
const express = require('express');
const app = express();
const port = 3002;
app.get('/service2', (req, res) => {
// 返回响应给客户端
res.json({ message: 'Hello from Service 2' });
});
app.listen(port, () => {
console.log(`Service 2 is running on http://localhost:${port}`);
});
现在,你可以启动这两个微服务,并通过访问http://localhost:3001/service1
来测试:
$ node service1.js
$ node service2.js
当你访问http://localhost:3001/service1
时,Service 1将发起一个HTTP请求到Service 2,并将Service 2的响应返回给客户端。
这只是一个简单的示例,用于演示如何使用Node.js构建微服务。在实际的项目中,你可能需要处理更复杂的业务逻辑、使用数据库进行数据存储、实现身份验证和授权等功能。但这个示例可以作为你开始构建基于Node.js的微服务的起点。