首页 > 解决方案 > 需要帮助来创建 server.js 以解决 CORS 问题

问题描述

所以,我需要点击一个 API 并在 html 元素中呈现响应。我有我的 app.js 这样做:

let url = 'http://localhost:80/db/abc/query/';

class abc extends Component {
state {userinput:""}

getResponse = () => {
        axios.get(url+this.state.userinput, {
            headers: {
                'Content-Type': 'application/json'
            }
        })
        .then(response => {
            this.setState({results: response.data})
        });
 }

render () { //ignore the render for now
   return ()
}
}
export default abc;

但是由于我收到了 CORS 错误,我创建了一个 server.js 并使用 # node server.js 命令启动了代理。但由于某种原因,我不断从 API 收到错误 500。

服务器.js

var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
app.use('/', function(req, res) {
    var url = 'https://' +
      req.get('url').replace('localhost:80', 'my-real-host-fqdn:8122') + 
      req.url
    req.pipe(request({ qs:req.query, uri: url })).pipe(res);
  })

app.listen(80, function () {
    console.log('CORS-enabled web server listening on port 80')
    })

我在单击按钮时调用我的 getResponse(),它正在工作,但未包含在上面的摘录中。

错误信息:

GET http://localhost/db/abc/query/<userinput> 500 (Internal Server Error)
createError.js:17 Uncaught (in promise) Error: Request failed with status code 500

代理服务器错误:

CORS-enabled web server listening on port 80
TypeError: Cannot read property 'replace' of undefined

OR

CORS-enabled web server listening on port 80
ReferenceError: request is not defined

我对 server.js 文件和使用 express 不是很熟悉。这是如何工作的,我在这里犯了什么错误吗?

标签: javascriptnode.jsreactjs

解决方案


那么对我来说,诀窍是从我的 server.js 中删除这一行:

 req.pipe(request({ qs:req.query, uri: url })).pipe(res);

在此处发布此内容,以便对遇到类似问题的人有所帮助。感谢您尝试帮助伙计们!


推荐阅读