首页 > 解决方案 > 从 mongoDB 获取数据时不打印输出

问题描述

我的数据库是:

db.userTable.find()
{“_id”:ObjectId(“5e25fc1520d6388df2bd7560”),“用户名”:“Alex”,“密码”:“12Ajkh”}
{“_id”:ObjectId(“5e25fc2820d6388df2bd7561”),“用户名” :“山姆”,“密码”:“156jkh”}

我的 index.js 是:

    let User = require('./models/user_model');
    app.get('/',(req,res)=>{
      User.find({},(err,user)=>{      
        if(err)       
          throw err;       
        console.log(">>>>>",user); 
        });     
     });

这是我的 ./model/user_model.js

let mongoose=require('mongoose');

let userSchema = mongoose.Schema({
    username:
    {
        type: String,
        required:true
    },

    password:
    {
        type:String,
        required:true
    }
});

let User = module.exports=mongoose.model("User",userSchema);

这在控制台中没有给我任何输出!

标签: mongodbexpressmodel

解决方案


这是因为您正在使用+,这就是为什么它没有在您的console. 请删除+您的console.log并将其更改为,.

️‍♂️你可以看到下面的代码:

let User = require('./models/user_model');
app.get('/',(req,res)=>{
  User.find({},(err,user)=>{      
    if(err)       
      throw err;       
    console.log(">>>>>", user); 
    });     
});

更新:./model/user_model.js

确保您的collection名称与您在 MongoDB 中的集合相同。

从您的database, 您正在使用userTable, 而不是user. 因此,在您的模型中,将其更改为userTable集合,而不仅仅是user.

这就是为什么,在你的集合中command line,你得到数据,但在你的集合中code你得到一个空数组。

️‍♂️ 现在,您可以在模型中使用以下代码./model/user_model.js

let mongoose=require('mongoose');

let userSchema = mongoose.Schema({
    username:
    {
        type: String,
        required:true
    },

    password:
    {
        type:String,
        required:true
    }
});

module.exports = mongoose.model("userTable",userSchema, 'userTable');

信息:更改useruserTable收藏。

现在,您可以在console.

我希望,它可以帮助你。


推荐阅读