node-js包含的路由文件不允许端点

node js included route file does not allow end point

本文关键字:不允许 端点 文件 路由 包含 node-js      更新时间:2023-09-26

我有一个节点项目,发生了一些非常奇怪的事情。我有一个包含所有路由的路由文件,我将其导入到server.js文件中。当我导入路由文件时。该路由的get请求根本不起作用,但当我将相同的路由粘贴到server.js上时,它可以正常工作。文件中的其他路由可以正常工作,但这一个路由尤其不能按预期工作。下面的代码。谢谢你的帮助。

server.js

require('./server/routes/mainRoutes.js')(app);

mainRoutes(这将不起作用):

app.get('/accounts',function(req,res){
        res.json({Test:'name'});
    });

现在,如果我把/accounts路由放在主服务器.js上,它就会起作用。由于某些原因,它从未在导入的mainRoutes文件中工作。

我不知道为什么它不起作用,如果你分享应用程序启动(我知道你使用express?)和你对app.listen的使用,它会有所帮助。

无论如何,最好的做法是使用app.use,如下所示:

server.js:

var routes = require('./server/routes/mainRoutes.js');
var express = require('express');
var app = express();
app.use('/', routes.app);
var server = app.listen(somePort, someIP, function() {
    console.log('Listening...');
});

mainRoutes.js:

var express = require('express');
var app = express();
app.get('/accounts',function(req,res){
    res.json({Test:'name'});
});
module.exports = {
    app: app
};