【发布时间】:2017-01-28 10:25:56
【问题描述】:
我编写了我的 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 myRoutes = require('./app/routes/myRoutes');并检查myRoutes是否为空 -
文件已正确加载。问题与传递中间件函数而不是对象有关。
-
错误是什么?