CRUD POST问题

时间:2016-03-26 15:21:28

标签: node.js angular mongodb rest

我正在构建我的MEAN项目的前端。我的服务器端工作正常,所以如果我发送一个帖子请求到本地主机,使用firstName,lastName,电子邮件和密码,我得到一个成功的响应。 enter image description here

这是我在Angular中的功能:

  signUp(user) {
    let headers = new Headers();
    headers.append('Content-Type', 'application/json');
    return this._http
      .post('/signup', JSON.stringify({ user }), { headers })
      .map(res => res.json())
      .map((res) => {
        console.log(JSON.stringify({ user }));
        return res.success;
      });
  }

不幸的是,这只会返回一个success: false参数。示例测试将控制台注销为:

  

{ “用户”:{ “名字”: “fghnjmkcvbnm”, “姓氏”: “dfghjk”, “电子邮件”: “dfghj@ghnjm.com”, “密码”: “fghjk12345456”}}

为什么这不起作用?

1 个答案:

答案 0 :(得分:1)

在屏幕截图中,您使用application/x-www-form-urlencoded作为内容类型。

我会以这种方式重构您的代码:

signUp(user) {
  let headers = new Headers();
  headers.append('Content-Type', 'application/x-www-form-urlencoded');

  let user = new URLSearchParams();
  user.set('email', 'some email');
  user.set('password', 'some password');
  user.set('firstName', 'first name');
  user.set('lastName', 'last name');

  return this._http
    .post('/signup', user.toString(), { headers })
    .map(res => res.json())
    .map((res) => {
      console.log(JSON.stringify({ user }));
      return res.success;
    });
}