在routes/index.js上,如果我离开module.exports = routes,它工作正常。 但如果我将其更改为以下允许多个文件,然后我得到一个中间件错误:快递中间件问题
module.exports = {
routes
};
var app = express();
const routes = require('./routes');
const port = process.env.PORT || 3000;
app.use(bodyParser.json());
app.use('/', routes);
app.get('/', (req, res) => {
res.send('Please visit: http://domain.com');
}, (err) => {
res.send(err);
});
//routes/index.js
const routes = require('./MainRoutes');
module.exports = routes;
// routes/Main Routes.js
const routes = require('express').Router();
routes.post('/main', (res, req) => {
//code here works
});
module.exports = routes;
错误是:Router.use()需要中间件功能,但得到'+ gettype(fn));
在index.js如果我改变module.exports = {routes};那么我得到相同的错误Router.use()需要中间件功能,但得到....我已经做了所有的更改和工作相同,只是不是如果我想从index.js文件多个出口...? – Mike
第一个......它的'module.exports =路由;'和**不** ** module.exports = {routes};'。在中间路由模块中,你应该使用'routes.use',在routes-controller中你必须使用'routes.get'(或者post,put等)。另外请注意,为了简化我将路由路径'/ main'移动到中间路由模块,并在控制器中处理'/'。你可以扭转它,在你这个简单的情况下,它不会有任何区别。 –