'“ <variable>”不是构造函数',并且无法使用猫鼬读取未定义错误的属性'find'

时间:2018-08-16 13:28:19

标签: angular mongoose

经历了与标题中的错误消息类似的所有线程之后,并尝试了提供的解决方案中的所有步骤,但未成功,我再次发布问题。

我重新编写了线程中解决的代码,并更正了所有区分大小写的问题。

  1. Mongoose TypeError: User is not a constructor

  2. TypeError: User is not a constructor - Mongoose Node.js Express-Validator

  3. TypeError: User is not a constructor

仍然,我遇到相同的错误。请帮帮我。标题上半部分的错误含义是什么?

userModel.js

const mongoose=require('mongoose');

var Schema = mongoose.Schema;
var User = mongoose.model('User',{
    username:{
        type: String
    },
    password:{
        type: String
    }
});


module.exports= User ;

userRoute.js

const express=require('express');
const userRouter=express.Router();
var app=express();

var {User}  = require('../models/userModel');

userRouter.route('/').post(function(req,res)
{
    var newUser = new User({ // 'User is not a constructor'
        username:req.body.name,
        password:req.body.name
    });
    newUser.save((err,doc) => {
            if(!err)
            res.send(docs);
        });
});


userRouter.get('/',(req,res)=>{
    User.find((err,docs) => { ' TypeError: Cannot read property 'find' of 
                               // undefined'
        if(!err) {res.send(docs);}
        else{
            console.log("Problem retreiving documents",JSON.stringify(err,undefined,2));
        }
    });
});

module.exports=userRouter;

1 个答案:

答案 0 :(得分:0)

用户架构似乎未初始化。尝试如下更改 userModel.js

的代码
const mongoose=require('mongoose');

var Schema = mongoose.Schema;

var UserSchema = new Schema({
    username:{
        type: String
    },
    password:{
        type: String
    }
});

var User = mongoose.model('User', UserSchema);


module.exports= User ;