首页 > 解决方案 > node.js mongoose find() 没有价值

问题描述

路线/signup.js

var express = require('express');
var router = express.Router();
const User = require('../model/user');
var mongoose = require('mongoose');


function userFind(value){
    return User.find({user_id:value}).exec();
};



router.get('/',function (req,res) {

    res.render('login/signup');


});


router.post('/',async function (req,res,next){
    try{
    let userid =req.body.id;
    console.log(userid);   //abcdefg
    const user = await userFind(userid);
    console.log(user);     // []
    
}catch(err){

    next(err);

    } 
})

module.exports = router;

模型/user.js

  const mongoose = require('mongoose')
  var Schema = mongoose.Schema;
   const userSchema = new Schema(
       { user_id  : {type:String,required:true, unique:true},
     user_password : {type:String, required:true, select:false},
     user_name: {type:String, required:true},
     user_email : {type:String,required:true,unique : true},
     user_birth : {type:String,require:true},
     },{versionKey:false},
     {collection: 'user'}
     );

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

mongodb里面的数据。

{
  "_id": {
    "$oid": "60413c7c48e5e61187cc4eeb"
  },
  "user_id": "abcdefg",
  "user_password": "test111",
  "user_name": "세글자",
  "user_email": "test@naver.com",
  "user_birth": "884455"
}

应用程序.js

var express = require('express');
var mongoose = require('mongoose');
const bodyParser = require('body-parser');

var db = mongoose.connection;
db.on('error', console.error);
db.once('open', function(){
    // CONNECTED TO MONGODB SERVER
    console.log("Connected to mongod server");
});

mongoose.connect("mongodb+srv://testing1:7894@cluster0.9hxjc.mongodb.net/data? 
   retryWrites=true&w=majority", { useNewUrlParser: true, useUnifiedTopology: 
true });

var app = express();

var test = require('./route/index');
var test2 = require('./route/signup');

app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());
app.set('views',__dirname+'/views');  // == 
app.set('views',path.join(__dirname, 'views'));
app.set('view engine','ejs');
app.engine('html',require('ejs').renderFile);

app.use('/',test);
app.use('/signup.ejs',test2);

app.listen(3000,function(){
    console.log('hello world');
});

你好,我正在学习使用 mogoose 和 node.js。我跑了 mongoose find() 但结果只有 []。我不知道为什么会这样,如果您告诉我,我将不胜感激。如果是findOne(),我应该怎么写呢?我试过写一次,但结果是空的。

标签: node.jsmongodbmongoose

解决方案


通过在评论中聊天,我们发现了问题。该模型称为user

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

哪个 mongoose 将连接到 MongoDB 中名为users(复数)的集合。那个收藏确实是空的。在名为 的集合中只有内容user


推荐阅读