首页 > 解决方案 > 问题路由快速路线

问题描述

我收到一个错误指示。

无法获取 /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

标签: node.jsexpressmern

解决方案


您无法获取该文件,因为没有为 /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


推荐阅读