在MEAN Stack应用程序中从mongo db检索数据

时间:2018-07-30 15:31:41

标签: angular mongodb mongoose mongodb-query mean-stack

我正在学习MEAN堆栈,并在我的本地mongo数据库中创建了一个“ eduLevel”集合,其中包含一些文档,如下所示:

> db.eduLevel.find().pretty()
{ "_id" : "G001", "name" : "Graduate" }
{ "_id" : "M001", "name" : "Masters" }
{ "_id" : "P001", "name" : "P.hd" }

我已经在MEAN App中为以下模型创建了一个模型:

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
  })
});

这是怎么了?

1 个答案:

答案 0 :(得分:0)

尝试一下

在您的代码中,您缺少针对findbyId的回调。

 app.get('/edu/:id', async (req, res) => {
      console.log(req.params.id);
      await Edu.findById(req.params.id, function (err, data) {
        if(err){
        console.log(err);
        es.status(500).send(err);
        }
        console.log(data);
        res.status(200).json({
        data: data.name
        })
      });

    });