node.js - 无法读取未定义的属性“删除”
问题描述
我正在尝试在节点和猫鼬中创建一个登录页面,一旦我运行一个包含一些名为 seed.js 的测试数据的文件,就会弹出这个错误
const mongoose = require('mongoose');
const db = require('./dbconn');
const users = [
{ username: 'username', password: 'password' },
{ username: 'kelvin', password: 'password' },
];
const seed = async () => {
try {
await db.User.remove();
console.log('DROP ALL USERS');
await Promise.all(
users.map(async user => {
const data = await db.User.create(user);
await data.save();
}),
);
console.log('CREATED USERS', JSON.stringify(users));
await Promise.all(
polls.map(async poll => {
poll.options = poll.options.map(option => ({ option, votes: 0 }));
const data = await db.Poll.create(poll);
const user = await db.User.findOne({ username: 'username' });
data.user = user;
user.polls.push(data._id);
await user.save();
await data.save();
}),
);
console.log('CREATED POLLS', JSON.stringify(polls));
} catch (err) {
console.error(err);
}
};
seed();
还有我的 schema.js 文件,它位于一个名为 dbconn- 的文件夹中
const mongoose = require('mongoose');
const bcrypt = require('bcrypt');
var userSchema = new mongoose.Schema({
username:{
type:String,
required:true,
unique:true,
}
,password:{
type:String,
required:true,
},
created:{
type:Date,
default:Date.now
},
});
userSchema.pre('save',async function(next){
try{
if(!this.isModified('password')){
return next();
}
const hashed = await bcrypt.hash(this.password,10);
this.password=hashed;
return next();
}
catch(err){
return next(err);
}
})
module.exports = mongoose.model('User',userSchema);
dbconn 文件有一个 index.js 文件,该文件已经使用 mongoose 建立了 mongodb 连接
解决方案
推荐阅读
- teamcity - Teamcity 不会针对 PR 的更改一致地触发构建
- r - 如何将具有大量数据的类从因子更改为最新?
- html - 如何在不链接 a href 的情况下转到关于页面?
- unit-testing - ARM项目中x86上的CMake UnitTest
- sql - 为用户定义的域类型定义排序方案
- javascript - 将日期字符串转换为日期对象?
- python-3.x - 如何仅获取每个元素“音频”中的第一个元素“源”
- java - Java TCP-Server 套接字连接保持活动状态
- python - 如何获取一个模型字段的 CharField 列表,可以使用“+”按钮增加以在 Django admin 中添加其他字段?
- express - Javascript 全局变量未按预期工作