【发布时间】:2019-01-06 21:51:35
【问题描述】:
我正在学习 MEAN 堆栈,并且在我的本地 mongo db 中,我创建了一个集合“eduLevel”,其中包含一些文档,如下所示:
> db.eduLevel.find().pretty()
{ "_id" : "G001", "name" : "Graduate" }
{ "_id" : "M001", "name" : "Masters" }
{ "_id" : "P001", "name" : "P.hd" }
我已经在我的 MEAN 应用程序中为相同的模型创建了一个模型:
const mongoose = require('mongoose');
const eduSchema = mongoose.Schema({
_id: String,
name: String
});
module.exports = mongoose.model('eduLevel', eduSchema);
当我执行以下代码行时,我将 edu 作为 null 作为响应(在控制台日志中我正在获取 id 值),
app.get('/edu/:id', async (req, res) => {
console.log(req.params.id);
let edu = await Edu.findById(req.params.id);
console.log(edu);
res.status(200).json({
edu: edu.name
})
});
这里做错了什么?
【问题讨论】:
-
你可以在这里包含
Edu.findById功能代码。我想你忘记在函数定义中添加async了。 -
您能提出您的要求吗?
-
Edu 是我写的导入模型,我是这样导入的:const Edu = require('./models/edu');而 findById 是通过 id 查找文档的 mongoose 方法,我没有覆盖它
-
@DheerajKumar 这就是我从我的 Angular 服务发出请求以检索数据的方式(如果这就是您所要求的): getEdu() { this.httpClient.get('localhost:3000/edu/G001').subscribe(console.log) }
标签: angular mongodb mongoose mongodb-query mean-stack