我正在尝试将表单数据从angular发布到node.js。角度发布请求发送一个空的正文。 这是我的路由器 提交功能是ts文件
onSubmit( loginData ) {
if(!loginData) { return; }
this.userService.addUser( loginData as User )
.subscribe(user => {
this.users.push(user);
});
用于发布数据的服务
addUser(user: User): Observable<User> {
// console.log('this is '+user.email);
const url = `${this.usersUrl}/register`;
return this.http.post<User>(url, user).pipe(
tap((newUser: User) => this.log(`added user w/ email=${newUser.email}`)),
catchError(this.handleError<User>('addUser'))
);
}
答案 0 :(得分:0)
请通过添加调试检查一次,是否已在服务中传递loginData。
如果您不知道如何添加调试点,只需使用console.log(user)
打印数据
在方法addUser()中作为第一行。
如果没有获取数据,则只需通过以下方法修改方法调用:
this.userService.addUser(loginData).subscribe(user => {
this.users.push(user);
});
答案 1 :(得分:0)
我发现了问题所在。 这个角度代码没有问题。 我还按照David的建议检查了“网络”选项卡,并看到正在发送有效负载。 问题是我的node.js服务器中的这一行代码
app.use(express.static('public'))
相反,我不得不使用
app.use(exrpess.json())
我已经从另一个应用程序复制了模板,但以某种方式错过了它。无论如何,谢谢您的帮助!