Mat*_*Lee 12 passwords username mongodb node.js
我一直在为这个项目苦苦挣扎.我正在遵循一些在某些领域过时的教程,例如他们的Jquery版本对某些函数使用了完全不同的格式,我不得不做很多改变.但我认为我已经陷入了最后一个无法找到解决方案的重大问题.在我的Schema变量中,我有_id,用户名和密码类型
var UserSchema = new mongoose.Schema({
_id: mongoose.Schema.ObjectId,
username: String,
password: String
});
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将新用户添加到我的应用程序时,它不会获得我应该获得的警报,而是弹出为[object Object]并且没有任何内容添加到数据库中.然后在mongo cmd中弹出此错误
"错误:文档在保存之前必须有_id".
我已经尝试评论_id行,我得到了正确的消息,但我的数据库中仍然没有显示任何内容.
das*_*dsa 28
它非常简单:
你不能做的是将它放在架构中但不初始化它.它会抛出你正在谈论的错误
Niv*_*han 22
我通过以下方式修复了错误
@Prop()上面_idmongoose.Types.ObjectId为类型_idimport { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import mongoose from 'mongoose';
import { Document } from 'mongoose';
export type CompanyDocument = Company & Document;
@Schema()
export class Company {
_id: mongoose.Types.ObjectId;
@Prop({ unique: true })
name: string;
}
export const CompanySchema = SchemaFactory.createForClass(Company);
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以在没有 _id 的情况下编写模型,以便自动生成
或者
您可以使用 .init() 来初始化数据库中的文档。
喜欢:
const mongoose = require('mongoose');
const UserSchema = mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
username: String,
password: String
})
module.exports = mongoose.model('User', UserSchema);
Run Code Online (Sandbox Code Playgroud)
进而
const User = require('../models/user');
router.post('/addUser',function(req,res,next){
User.init() // <- document gets generated
const user = new User({
username: req.body.username,
password: req.body.password
})
user.save().then((data)=>{
console.log('save data: ',data)
// what you want to do after saving like res.render
})
}
Run Code Online (Sandbox Code Playgroud)
小智 2
尝试下面的代码片段,我想将 _id 命名为 userId,您也可以不使用它。
var Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
var UserSchema = new Schema({
username: String,
password: String
});
UserSchema.virtual('userId').get(function(){
return this._id;
});Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13265 次 |
| 最近记录: |