Angular 7 - "属性 json 在对象类型上不存在"



我正在学习一个关于构建MEAN堆栈身份验证应用程序的教程,我的auth.server.ts文件中的registerUser函数有问题。

教练正在使用angular 2,这在其他地方给我带来了问题,但我能够找到最新的解决方案。这个错误给我带来了一些其他课程的问题,我不知道如何修复它。

这是我的代码:

registerUser(user) {
let headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');
return this.http.post('http://localhost:5000/users/register', user, { headers: headers }).pipe(map(res => res.json()));
}

如果您需要,这里是完整的auth.service.ts文件:

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { map } from 'rxjs/operators';
@Injectable({
providedIn: 'root'
})
export class AuthService {
authToken: any;
user: any;
constructor(private http: HttpClient) { }
registerUser(user) {
let headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');
return this.http.post('http://localhost:5000/users/register', user, { headers: headers }).pipe(map(res => res.json()));
}
}

对于Angular 7,建议使用HttpClient而不是Http。您不需要使用.json((在HttpClient中映射结果。下面你可以找到这方面的示例代码:

import { HttpClient } from '@angular/common/http';
registerUser(user) {
let headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');
return this.http.post('http://localhost:5000/users/register', user, { headers: headers });
}

如果您使用的是HttpClient而不是Http,则不需要使用管道或将其映射到json。您可以简单地返回API调用的响应。

registerUser(user) {
let headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');
return this.http.post('http://localhost:5000/users/register', user, { headers: headers });
}

相关内容

  • 没有找到相关文章

最新更新