使用angular2 + service编辑对象,mongoDB&的NodeJS

时间:2017-08-03 09:31:45

标签: node.js mongodb angular express mongoose

我想对数据库中存储的数据进行基本编辑(mongoDB)。 这就是我所做的:

角色服务

<typeHandlers>
    <typeHandler javaType="string" jdbcType="BLOB" handler="org.apache.ibatis.type.StringTypeHandler"/>
</typeHandlers>

deleteReview(id){

createReview(review) {

    let headers = new Headers();
    headers.append('Content-Type', 'application/json');

    this.http.post('http://localhost:3000/api/reviews', JSON.stringify(review), { headers: headers })
      .subscribe(res => {
        console.log(res.json());
      });

  }
editReview(review) {

    let headers = new Headers();
    headers.append('Content-Type', 'application/json');
    this.http.post('http://localhost:3000/api/reviews', JSON.stringify(review), { headers: headers })
      .subscribe(res => {
        console.log(res.json());
      });
  }

}

server.js中的

this.http.delete('http://localhost:3000/api/reviews/' + id).subscribe((res) => {
  console.log(res.json());
});

创建新评论工作正常并删除评论。但是当涉及到编辑时,我在server.js的app.post函数中从req.params.review_id中获得了未定义的错误。 我确定我没有以正确的方式做到这一点。 如何使用这些库和框架更新数据?

1 个答案:

答案 0 :(得分:0)

如评论中所述,您使用的参数未在快速申请的路线中定义。

通过将路径定义写为:

,可以使参数可选(将与创建和编辑一起使用)
app.post('/api/reviews/:review_id?', function(req, res) {
  /* .... */
} );

请记住,遵循适当的REST架构,您应该在PUT请求中分离实体的编辑。

app.post( '/api/reviews', function( req, res ) { /** Handle Create */ } );
app.put( '/api/reviews/:review_id', function( req, res ) { /** Handle Edits */ } );