经历了与标题中的错误消息类似的所有线程之后,并尝试了提供的解决方案中的所有步骤,但未成功,我再次发布问题。
我重新编写了线程中解决的代码,并更正了所有区分大小写的问题。
“ TypeError: User is not a constructor - Mongoose Node.js Express-Validator”
仍然,我遇到相同的错误。请帮帮我。标题上半部分的错误含义是什么?
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;
答案 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 ;