节点Js表示路由器不工作

ujj*_*ngh 3 javascript web-services node.js express

js和我正在学习节点js和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();
Run Code Online (Sandbox Code Playgroud)

我也有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;
Run Code Online (Sandbox Code Playgroud)

但是当我尝试从邮递员那里测试其余的api(http:// localhost:3000/api/widgets)时,它说不能GET/api/widgets

小智 6

您已导入并初始化快速模块,但随后启动了带有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');
});
Run Code Online (Sandbox Code Playgroud)