【发布时间】:2019-09-07 04:39:00
【问题描述】:
我正在做一个简单的网站,其中包含一个可以在 json-server 上找到的数据库,通常就像我在 yt 上找到的这个:https://www.youtube.com/watch?v=b4fvPUXGETo
我的问题是我不知道两台服务器如何相互通信。我是 nodejs 的新手,任何帮助将不胜感激。
json 服务器在我的http://localhost:3000/posts 上启动并运行,而我正在处理的网站在我的http://localhost:5000 上运行
下面是db.json文件
{
"posts": [
{
"userId": 1,
"id": 1,
"title": "ahkasdadad",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
]
}
posts.js 文件的片段:
const express = require('express');
const router = express.Router();
var endpoint = "http://localhost:3000/posts";
// Gets all posts
router.get('/', (req, res) => {
res.send(endpoint);
});
这里是 index.js 文件
const express = require('express');
const path = require('path');
const app = express();
const logger = require('./middleware/logger');
// Innit middleware
// app.use(logger);
// Body Parser Middleware
app.use(express.json());
app.use(express.urlencoded({ extended:false }))
// Set static folder
app.use(express.static(path.join(__dirname, 'public')));
// Posts API route
app.use('/api/posts', require('./routes/api/posts'));
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => console.log(`Server started on port ${PORT}`));
我希望http://localhost:5000/api/posts 会预览 db.json 中的数据,但会显示“http://localhost:3000/posts”。解决方法是什么?
【问题讨论】:
-
你需要一个
http client像axios 来从一台服务器向另一台服务器发出请求。 -
你能检查一下是 5000 还是 3000 正在运行/收听
-
5000 和 3000 已启动并运行