首页 > 解决方案 > 在 MEAN Stack 应用程序中从 mongo db 检索数据

问题描述

我正在学习 MEAN 堆栈,在我的本地 mongo db 中,我创建了一个集合“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
  })
});

这里做错了什么?

标签: angularmongodbmongoosemongodb-querymean-stack

解决方案


尝试这个,

在您的代码中,您缺少 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
        })
      });

    });

推荐阅读