(MEAN STACK)当我提交表单时,后端正在mongodb中保存objectId和__v:0



我正在使用MEAN STACK:开发一个小型CRUD应用程序

  • 我有一个表单,可以将一本书的信息保存在mongodb中
  • 当我提交时,我发现我在数据库中保存了ObjectID和__v:0,而不是书的详细信息!这是我的代码:

后端:

booksRoute.route('/post').post((req,res,next)=>{
var x = {
name   : req.params.name,
genre  : req.params.genre,   
author : req.params.author,
rating : req.params.rating,
price  : req.params.price
}
console.log(x) ; 
BookModel(x).save((err,x)=>{
if (err){console.log(err);}
else res.send(x) ;
}) ;
})

猫鼬模型

const mongoose = require('mongoose') ;
const Schema = mongoose.Schema ; 
let books = new Schema({
name:{
type:String
},
genre:{
type:String
},
author:{
type:String
},
rating:{
type:Number
},
price:{
type:Number
}
},{
collection: 'booklist' 
}) 
module.exports = mongoose.model('books',books) ; 

前端

<ul>
<form #f="ngForm" (ngSubmit)="onSubmit(f)">  
<li>
<label>book's name *</label>
<input name="name" type="text" ngModel>
</li>
<li>
<label>book's genre *</label>
<input name="genre" type="text" ngModel>
</li>
<li>
<label>book's author *</label>
<input name="author" type="text" ngModel>
</li>
<li>
<label>rating *</label>
<input name="rating" type="number" [max]="10" min="0" ngModel>
</li>
<li>
<label>price *</label>
<input name="price" type="number" ngModel>
<input class="btn btn-primary" type="submit"/> 
</li>  
</form>
</ul>

触发后端保存文档的功能

onSubmit(f){
//console.log(f.value) ;
this.apiService.postBook(f.value).subscribe( res => {console.log('the back response:',res)}) ; 
}

服务

//post book
postBook(data){
console.log(data) ;
return this.http.post(this.backendUrl+'/post',data) ;
}

我认为您的问题是试图从req.params而不是req.body中获取值

相关内容

  • 没有找到相关文章

最新更新