如何从 Nodejs 获取数据到 Angular 6?

Posted

技术标签:

【中文标题】如何从 Nodejs 获取数据到 Angular 6?【英文标题】:How to get data from Nodejs to angular 6? 【发布时间】:2019-01-12 11:38:48 【问题描述】:

我正在使用 http.get 从 nodejs 获取数据到 angular。我想在页面加载时加载一些内容。所以,我只是在初始化方法中调用它。

_initialize(): void 
this.http.get('http://127.0.0.1:3000/query/getId').subscribe(
  data => 
    console.log("success");
  ,
  err => 
    console.log("Error occured."+JSON.stringify(err));
  
);

在我的服务器js中,

app.get('/query/getId',function(req,res)
             console.log("hi there");

 )

我想传递数据,但目前控制台消息本身没有显示在节点中。在浏览器中,我可以看到发生了消息错误。 message":"url 解析过程中的 Http 失败"。有人能告诉我如何处理吗?

【问题讨论】:

那是因为 Angular 期望从你的服务器获取 JSON,但目前它没有。如果你修改你的服务器以发回一些基本的 JSON(即使只是像res.send('') 这样的空对象),那么这个错误应该会消失 仍然收到相同的错误消息":"解析 url 期间 Http 失败" @user184994 如果您在浏览器开发者工具 (F12) 中检查并检查请求的网络选项卡,您能看到返回的响应吗? 状态码是 200 并且响应选项卡“您的浏览器不支持 javascript”@user184994 【参考方案1】:

添加节点功能:

res.json("hi there");

【讨论】:

仍然出现类似“消息”的错误:“解析 url 期间的 Http 失败”【参考方案2】:

您可以使用 responseType 指定要返回的数据不是 JSON。见Requesting non JSON data

在您的示例中,您应该能够使用:

 this.http.post('http://127.0.0.1:3000/query/getId',, responseType: 'text')

【讨论】:

我只想要 json 响应。但是在返回 json 数据后,我也得到了同样的错误,比如 "message":"Http failure during parsing for the url" 。 好的,在这种情况下将标头设置为应用程序 json 并检查您的网络选项卡正在发送和接收的内容 在网络选项卡中。我得到状态码 200。但我仍然面临同样的错误。 你在使用 Angular 6 和 httpclient 吗?【参考方案3】:

尝试以下使用 JSON 数据的方法:

app.get('/query/getId',function(req,res)
    res.setHeader('Content-Type', 'application/json');
    res.send(JSON.stringify( a: 1 ));
 );

【讨论】:

以上是关于如何从 Nodejs 获取数据到 Angular 6?的主要内容,如果未能解决你的问题,请参考以下文章

从 mongoDB 获取数据并使用 Angular 和 NodeJs 在屏幕上打印

在 Angular 中从 nodejs 获取 JSON

如何将数据从 AngularJS 前端传递到 Nodejs 后端?

Angular 2 + NodeJS + Mongoose - 从 Angular 2 发布数据到 rest api nodejs 后端。节点 api 日志:选项 /url,POST 标头不起作用

使用Angularjs和nodejs进行Mongodb CRUD操作-如果数据已经存在,如何从数据库中获取消息?

angular2-webpack-starter 如何将 NodeJS 服务器添加到项目中