节点 Js 快速路由器不工作



js,我正在学习Node js和express,我正在学习快速路由,我在休息时有以下代码.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();

我也有小部件.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;

但是当我尝试从邮递员测试其余的 api(http://localhost:3000/api/widgets( 时,它说无法获取/api/widget

您已经导入并初始化了快速模块,但随后使用 http 模块启动服务器。您应该只使用快递:

此外,您应该使用 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');
});

你也可以试试。

休息.js

const express = require('express');
const http = require('http');
const  router = express.Router();
const app = express();
require('./widgets')(app, router);
app.get('/', function(req, res) {
    res.send('Home');
});
app.listen(3000,function(){
    console.log('server started in port 3000');
});

小部件.js

module.exports = function(app, router){
    router.route("/widgets")
        .get(function(req,res){
            res.json({"abc":"hello"});
        })
        .post();
    router.route("/widgets/:widgetId")
        .get()
        .put()
        .delete();
    app.use('/api', router);
});

相关内容

  • 没有找到相关文章

最新更新