gpt4 book ai didi

node.js - Nodejs Express : Routes in separate files

转载 作者:太空宇宙 更新时间:2023-11-03 21:55:37 25 4
gpt4 key购买 nike

我编写了 app.js,包括主文件中的所有路由,一切都运行良好。我的目标是通过将路线移动到不同的文件中来使项目更加清晰,但它不起作用。我传递的是一个对象而不是中间件函数,但我不知道如何以正确的方式修复它。

这是我的 app.js 文件:

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var morgan = require('morgan');
var mongoose = require('mongoose');
var myRoutes = require('./app/routes/myRoutes.js');

...

//parser for getting info from POST and/or URL parameters
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

//for log requests to console
app.use(morgan('dev'));

app.use('/myRoutes', myRoutes);

app.get('/',function(req,res){
res.end('Welcome Page!');
});

//Server Start
app.listen(port);
console.log('server start at port ' + port);

app/routes/myRoutes.js 包含以下代码:

var express = require('express');
...
var myRoutes = express.Router();

myRoutes.get('/users',function(req,res){
...
});

myRoutes.post('/setup',function(req,res){
...
});

myRoutes.post('/remove', function(req,res){
...
});

module.export = myRoutes;

我也尝试过这个:

var express = require('express');
var myRoutes = express.Router();

myRoutes.route('/')
.get(function(req, res, next){
res.end('myRoute Get');
})
.post(function(req, res, next){
res.end('myRoute Post');
});

module.export = myRoutes;

但它似乎又没有传递中间件函数。

最佳答案

我的第二个选项代码

var express = require('express');
var myRoutes = express.Router();

myRoutes.route('/')
.get(function(req, res, next){
res.end('myRoute Get');
})
.post(function(req, res, next){
res.end('myRoute Post');
});

module.export = myRoutes;

工作正常!我只是写错了

module.export = myRoutes;

不是

module.exports = myRoutes;

关于node.js - Nodejs Express : Routes in separate files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41908680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com