我需要将一些数据从angular传递到node.js服务器。这是我的angular postlist组件:从‘@angular/ OnInit’导入{ Component,OnInit};从“@angular/common/http”导入{ HttpClient };
@Component({
selector: 'app-postlist',
templateUrl: './postlist.component.html',
styleUrls: ['./postlist.component.css']
})
export class PostlistComponent implements OnInit {
constructor(private http: HttpClient) { }
public data="test";
ngOnInit(): void {
this.http
.post("http://localhost:3000/api/book",this.data);
}
}
我的node.js服务器:
const express=require('express');
var app = express();
app.post('/api/book', function(req, res, next){
var data = req.body.params;
console.log(data);
});
app.listen(3000);
我尝试对数据执行console.log操作,但什么也没有发生。
发布于 2020-05-30 00:02:51
您的呼叫中缺少.subscribe。将代码更改为:-
ngOnInit(): void {
this.http
.post("http://localhost:3000/api/book",this.data).subscribe();
}
在nodejs中只需打印req.body
发布于 2020-05-30 00:11:57
如果您计划打印有效负载this.data
,请使用req.body
而不是req.body.params
。还要检查控制台中是否有cors
错误,这也可能会阻止您的数据到达您的web服务器。
发布于 2021-03-22 21:23:29
在服务器中,您必须将消息格式更改为JSON,如下所示
app.get('/api/GetFlux',function(req,resp){
let data = "hello"
resp.send(JSON.stringify(data));
})
在角度级别
GetFlux():Observable<any[]>{
return this.http.get<any>(this.APIUrlNode+'/GetFlux');
}
this.service.GetFlux().subscribe(res =>{
this.fluxList = {
data:res
}
console.log("Data from node "+this.fluxList.data)
//,
}, err => {
console.log(" err = "+err)
})
https://stackoverflow.com/questions/62089970
复制相似问题