js,我正在学习 node js 和 express,我正在学习 express 路由,我在 rest.js 中有以下代码
const http = require('http');
const express = require('express');
const widgetRouter = require('./rest/widgets');
const app1 = express();
const server = http.createServer(app1);
app1.get('/api',widgetRouter);
server.listen(3000,function(){
console.log('server started in port 3000');
});
const app = express();
我还有 widgets.js 文件
const express = require('express');
const widgetRouter = express.Router();
widgetRouter.route("/widgets")
.get(function(req,res){
res.json({"abc":"hello"});
})
.post();
widgetRouter.route("/widgets/:widgetId")
.get()
.put()
.delete();
module.exports = widgetRouter;
但是当我尝试测试 postman 的其余 api(http://localhost:3000/api/widgets)时,它说无法获取/api/widgets
最佳答案
您已经导入并初始化了 express 模块,但是随后您使用 http 模块启动了一个服务器。你应该只使用 Express:
您还应该使用 app.use('/api',widgetRouter)
而不是 app.get('/api', widgetRouter)
这是一个快速中间件.
const express = require('express');
const app = express();
const widgetRouter = require('./rest/widgets');
app.use('/api', widgetRouter);
app.get('/', function(req, res) {
res.send('Home');
});
app.listen(3000, function(){
console.log('server started in port 3000');
});
关于javascript - Node Js Express 路由器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42195707/