【发布时间】:2017-08-29 17:47:24
【问题描述】:
我是 Express 和 Mongoose 的新手。我目前正在做我的第一个项目,这不是一个教程,我遇到了一个问题。
我有多个路由,它们在 index.js 中定义如下:
app.use('/api/client',require('./routes/client'));
app.use('/api/host',require('./routes/host'));
在路由中,有多个动词可以使用,例如 PUT 和 POST。 这是有问题的路线(我试图做的比这里介绍的更多,但这里介绍的也不起作用):
router.get('/ama/:id', function (req, res, next) {
Ama.findById(req.params.id).then(function(Ama){
res.send(Ama);
});
});
这应该可行,对吧?它应该返回具有该 ID 的数据库中的文档。我已经检查了文件是否存在,可能大约 100 次。 现在,如果我大大简化路由,删除 id 并做出简单的响应,那么路由就可以工作了:
router.get('/ama', function (req, res, next) {
res.send({type:"GET"});
});
太诡异了,一加参数,我就得到一个:
<pre>Cannot GET /api/host/ama</pre>
在邮递员中。
有什么想法吗? Mongod 正在运行,我的其他路线正在运行。
【问题讨论】:
-
您在哪里调用 /api/host/ama ?只是使用邮递员?当您记录 req.params.id 时,您会得到什么?
-
@CédricDeDycker 是的,我现在使用 Postman。我无法记录 req.params.id,因为看起来路由中的代码甚至从来没有运行过。至少当我尝试记录它时,什么也没发生。
标签: node.js express mongoose get router