【问题标题】:(MEAN STACK) backend is saving objectId and __v : 0 in mongodb when i submit a form(MEAN STACK)后端在我提交表单时将objectId和__v:0保存在mongodb中
【发布时间】:2022-01-05 17:58:29
【问题描述】:

我正在使用 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) ;
  }

【问题讨论】:

    标签: node.js angular mongodb mongoose mean-stack


    【解决方案1】:

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

    【讨论】:

    • hhh 我发誓我做到了,但不知何故,当你向我提出这个建议时,我又做了一次,它奏效了!谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-02-06
    • 2016-12-11
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 2015-03-01
    相关资源
    最近更新 更多