Javascript 为什么我总是得到TypeError:用户不是构造函数?
我正在练习创建模型和路线,并使用postman发送一个POST请求来测试它。然而,我一直认为用户不是一个构造函数错误 index.js路由 用户模式 我希望它会发回一个对象,其中包含我在邮递员上发送的以下信息:Javascript 为什么我总是得到TypeError:用户不是构造函数?,javascript,node.js,express,mongoose,Javascript,Node.js,Express,Mongoose,我正在练习创建模型和路线,并使用postman发送一个POST请求来测试它。然而,我一直认为用户不是一个构造函数错误 index.js路由 用户模式 我希望它会发回一个对象,其中包含我在邮递员上发送的以下信息: { "name": "Michael", "email": "email@eail.com", "password": "ThisIsAPassword" } 在编译模型之前,必须定义userSchema,如下所示: const mongoose = requi
{
"name": "Michael",
"email": "email@eail.com",
"password": "ThisIsAPassword"
}
在编译模型之前,必须定义userSchema,如下所示:
const mongoose = require('mongoose')
const validator = require('validator')
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true,
trim: true
},
email: {
type: String,
require: true,
trim: true,
lowercase: true,
validate(value) {
if(!validator.isEmail(value)) {
throw new Error('Email is invalid')
}
}
},
age: {
type: Number,
default: 0,
validate(value) {
if(value < 0) {
throw new Error('Age must be a positive number.')
}
}
},
password: {
type: String,
trim: true,
lowercase: true,
required: true,
minlength: 7,
validate(value) {
if( value.toLowerCase().includes("password")) {
throw new Error("Password can't be 'password'.")
}
}
}
})
const User = mongoose.model('User', userSchema);
exports.User = User
现在它是一个构造函数,因为我们说每个User实例都是userSchema的一个新实例。我弄明白了。在index.js文件的第三个部分,我遗漏了require 与此相反:
const User = ('./models/user')
应该是这样的:
const User = require('./models/user')
谢谢大家的帮助 mongoose.model的第二个属性不是对象,而是mongoose.Schema
const mongoose = require('mongoose')
const validator = require('validator')
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true,
trim: true
},
email: {
type: String,
require: true,
trim: true,
lowercase: true,
validate(value) {
if(!validator.isEmail(value)) {
throw new Error('Email is invalid')
}
}
},
age: {
type: Number,
default: 0,
validate(value) {
if(value < 0) {
throw new Error('Age must be a positive number.')
}
}
},
password: {
type: String,
trim: true,
lowercase: true,
required: true,
minlength: 7,
validate(value) {
if( value.toLowerCase().includes("password")) {
throw new Error("Password can't be 'password'.")
}
}
}
})
const User = mongoose.model('User', userSchema);
exports.User = User
const User = ('./models/user')
const User = require('./models/user')