node.js - 问题路由快速路线
问题描述
我收到一个错误指示。
无法获取 /todoListItem
不知道为什么我会收到此错误,因为在研究和阅读文档之后,我的路线如下所示看起来正确定义。
//@route GET to do list page route
router.get('/showToDoList', function(req, res) {
res.redirect('/todoListItem');
});
module.exports = router;
在我的 server.js 中,我正在以这种方式实现我的应用程序使用。
var indexRouter = require('./routes/index');
var todoListItemRouter = require('./routes/todoListItem')
//Bodyparser MiddleWare
app.use(bodyParser.json())
// Add to do list routes to middleware chain.
app.use('/', indexRouter);
app.use('/showToDoList', todoListItemRouter);
在我的 todoListItem.js 中,我正在调用我的控制器。
//@route GET all do list items from user.
router.get('/todoListItem', todoList_controller.todo_lists)
我不确定为什么会出现上面显示的错误。我的文件目录已实现
-routes
-- index.js
-- todolistItem.js
在我的 server.js 文件中,我正在执行路由逻辑。任何有助于理解我的问题的帮助将不胜感激。这是我的 github 存储库以获取更多信息 https://github.com/OlooAllaN/ToDoList-Project
解决方案
您无法获取该文件,因为没有为 /showToDoList 定义路由。
app.use('/showToDoList', todoListItemRouter);
告诉 Express 将所有匹配“/showToDoList”的请求指向这个路由器。在 todoListItemRouter 中定义的任何路由都可以通过使用“/showToDoList/route1”、“/showToDoList/route2”、“/showToDoList/showToDoList”来访问。
正确的方法是将您的 todoListItemRouter 中的路线编辑为:
//@route GET all do list items from user.
router.get('/', todoList_controller.todo_lists)
这将实现您正在寻找的效果。有关使用外部路由文件的更多信息,请参阅Express Docs。