【问题标题】:Call NodeJs API with Angular2 app使用 Angular2 应用调用 NodeJs API
【发布时间】:2020-01-06 23:31:37
【问题描述】:

对于一个项目,我需要使用 Angular 制作一个应用程序,我必须在其中从数据库中获取数据。所以我用 NodeJs 创建了一个 API 来处理连接并获取我的数据。

但是现在用我的 Angular 应用调用这个 API 有问题,我先给你看我的代码

这里是我尝试返回数据以使用它的组件:(something.component.ts)

onGetData(){
  this.foncService.getData()
  .subscribe((data) => {
    console.log(data);
  },(error) => {
    console.log("error : ", error);
  });  
}

我在这里调用我的 API:(something.service.ts)

getData(){
  return this.httpClient.get('localhost:3000/api/data').map(res => res);
}

我在这里从我的 API 中的数据库获取数据:(api.js)

function getAllDatas(req, res, next) {
  db.any('select * from dat')
  .then(function (data) {
    res.status(200)
    .json({
      status: 'success',
      data: data,
      message: 'done'
    });
  })
  .catch(function (err) {
    return next(err);
  });
}

API 运行良好,当我单独使用它时,我得到了正确的数据。

好吧,当我想使用我的数据时,问题出在组件上,所以问题可能来自我的服务,idk :(,所以我的错误如下:

当我想在互联网上搜索这个错误时,我总是陷入 CORS 问题,但我想我已经配置了它

api.js

var cors = require('cors');
app.use(cors())

//or I also tried

app.use(function(req, res, next) { 
  res.header("Access-Control-Allow-Origin", "*"); 
});

【问题讨论】:

  • 假设您的应用程序仍在开发中,不要为CORS 调整代码,只需在谷歌浏览器中下载一个名为CORS Toggle 的插件,然后将其添加到浏览器中,单击它然后它会变成绿色,然后所有这些CORS相关的问题都不会出现,直到你再次点击它。

标签: node.js angular


【解决方案1】:

是的,这似乎是 CORS 问题,您解决它的方法是一种方法,另一种方法是使用 angular 的 proxy.config.json 文件,它将所有传入请求重新写入代理端口。因此,您将重写到后端端口,而不是 4200。

那你就ng serve --proxy-config proxy.conf.json

如:

https://itnext.io/angular-cli-proxy-configuration-4311acec9d6f

颜色我不确定,抱歉。

【讨论】:

  • 谢谢,既然我已经完成了这个代理配置,当我重定向到一个路径时,请问如何从数据库中获取我的数据?而且是我的方式去路径好,我用的是router.navigate。
猜你喜欢
  • 2017-08-25
  • 1970-01-01
  • 2020-09-29
  • 2018-01-30
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
  • 2018-10-12
  • 1970-01-01
相关资源
最近更新 更多