javascript - Node Js Express 路由器不工作

标签 javascript node.js web-services express

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/

相关文章:

.net - 在 .NET 中的程序之间进行通信的最佳方式是什么?为什么?

node.js - Node soap,使用受密码保护的 WSDL

javascript - javascript文件的Django URL配置

javascript - groovy 将映射从 Controller 传递到 javascript

javascript - 可以解释 let 和 var 的这种奇怪行为吗?

javascript - Grunt Watch fatal error : listen EACCES and livereload

框架 4.5 中的 c# ReadAsJsonAsync

javascript - jQuery 获取 SVG 中指定 ID 的所有元素

javascript - 在日历行/列中添加天数数组

node.js - 如何将对象从 Sequelize 传递到 Handlebars 部分?