对于一个项目,我需要使用Angular制作一个应用程序,其中必须从数据库中获取数据。因此,我使用NodeJs制作了一个API,以处理连接并获取数据。
但是现在用Angular App调用此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 :(,所以我的错误如下:
当我想在Internet上搜索此错误时,我总是会陷入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", "*");
});
答案 0 :(得分:0)
是的,似乎是CORS问题,您解决的方式是一种方法,另一种是使用来自angular的proxy.config.json文件,该文件将所有传入请求重新写入代理端口。因此,您将重新写入后端端口,而不是4200。
然后您将ng serve --proxy-config proxy.conf.json
例如:
https://itnext.io/angular-cli-proxy-configuration-4311acec9d6f
我不确定颜色,抱歉。