使用 mongoose 时,导入导出的书写需要配套
如这里定义了一个模型:
// 引入 mongoose
const mongoose = require('../db/index')
//定义 sechema
const userSchema = mongoose.Schema(
{
username: {
type: String,
required: true,
unique: true,
},
password: {
type: String,
required: true,
},
age: {
type: Number,
default: 0,
},
city: {
type: String,
default: "",
},
gender: {
type: Number,
default: 0, //默认保密
}
},
{
timestamps: true,
versionKey: false,
}
)
//定义模型
const userModel = mongoose.model('user',userSchema);
//输出模型
module.exports = userModel;
导出我们写的是 module.exports = userModel;
那我们导入的时候就应该写成 const user = require('../model/userModel')
我们还可以这样写 module.exports = { userModel };
那我们导入的时候就应该写成 const { user } = require('../model/userModel')
不管用什么方式写,导入导出的书写方式需要匹配,不然在调用 数据库方法时就会报错:TypeError: User.create is not a function