在快速js分离路由器文件错误4
我是Node和Express的新手,我喜欢在单独的文件中分开路由function ,但是我总是得到错误。
我的app.js文件 –
var express = require('express'); var index = require('./Routes/index'); var app = express(); app.use(index); app.listen(2000); console.log("Server working at port 2000");
我的路线/ index.js
var express = require('express'); var router = express.Router(); router.use(function(req,res,next){ console.log("url "+req.url); }); router.get('/',function(req,res){ res.send("Hi is it working?"); }); module.export = router;
当我运行它,说错误如
app.use() requires middleware functions
如果我放
`app.use('/',index);`
而不是app.use(index);
那么我得到这样的错误
Router.use() requires middleware function but got a Object
所以作为一个总结(和一个正确的答案)你有两个问题:
错字:
module.export = router;
应该是module.exports = router;
。
中间件:
你的中间件应该调用next()
把请求传递给下一个函数。 有关更多详细信息,请查看文档 。
这个问题正如评论中提到的那样:
module.exports = router;
代替:
module.export = router;
我在这个问题上犯了两个错误
-
我有一个错字。 在line
module.exports
里我把module.export
( jonas ) -
下一个错误是我需要把
next();
在router.use()
中间件function。 因为我没有放下next();
它不知道中间件function后要执行什么。 我的意思是它不知道我的路线。 ( javiercf )