Вызов API NodeJs с помощью приложения Angular2 - PullRequest
0 голосов
/ 05 июля 2018

Для проекта мне нужно сделать приложение с Angular, в котором я должен получать данные из базы данных. Поэтому я создал API с NodeJ для обработки соединения и получения моих данных.

но теперь для вызова этого API с моим Angular App возникла проблема, сначала я покажу вам свой код

Здесь компонент, в котором я пытаюсь вернуть свои данные, чтобы использовать его: (something.component.ts)

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

Здесь я вызываю мой API: (thing.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 :(, и поэтому моя ошибка заключается в следующем:

enter image description here

Когда я хочу найти эту ошибку в интернете, я всегда сталкиваюсь с проблемой 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", "*"); 
});

1 Ответ

0 голосов
/ 05 июля 2018

Да, это похоже на проблему CORS, то, как вы решили ее, это 1 метод, другой - использовать файл proxy.config.json из angular, который перезаписывает все входящие запросы в проксируемый порт. Таким образом, вместо 4200, вы бы переписали на свой внутренний порт.

Тогда вы бы ng serve --proxy-config proxy.conf.json

Например:

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

Цвета, в которых я не уверен, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...