【问题标题】:Using Express JS to make API external CALL (avoiding cors problem)使用 Express JS 进行 API 外部 CALL(避免 cors 问题)
【发布时间】:2020-06-25 01:17:25
【问题描述】:

我正在尝试使用 express js 进行 API 调用以获取一些数据,然后将它们用于我的学校项目! 我听说我可以在我的浏览器上安装一个扩展或类似的东西,但这只适用于我的电脑。

所以我正在尝试使用 Express JS 创建自己的代理。 我是否需要在我的 app.get('/') 上写点别的东西,还是可以用斜线。 提前致谢!

const express = require('express');
const request = require('request');

const app = express();

app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*');
  next();
});

let key1 = '8151a53b2c1d4c3db2df'
let url ='http://api.sl.se/api2/realtimedeparturesv4.json?key='+key1+'&siteid=9192&timewindow=5'


app.get('/', (req, res) => {
  request( { url: url},
    (error, response, body) => {
      if (error || response.statusCode !== 200) {
        return res.status(500).json({ type: 'error', message: err.message });
      }
      res.json(JSON.parse(body));
      console.log(body);
    } )
});

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => console.log(`listening on ${PORT}`));```


【问题讨论】:

  • 这样做没有错,尽管您可能想添加 cors 包来为您处理它。你可以用res.pipe 代替你的大部分代码.. fyi 请求包已被弃用
  • 我实际上是表达 js 的新手,所以我想先让它像这样工作,而不是在我的代码中添加一些中间件!随意提出您的想法

标签: javascript node.js json api express


【解决方案1】:

像这样使用cors

var express = require('express')
var cors = require('cors')
var app = express()

app.use(cors())

如果你想为单个路由启用它:

app.get('/', cors(), (req, res) => { 

});

【讨论】:

    猜你喜欢
    • 2020-11-12
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 2019-06-08
    • 1970-01-01
    • 2013-06-22
    • 2021-11-14
    • 2012-05-02
    相关资源
    最近更新 更多