Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我无法从express获取参数_Javascript_Node.js_Reactjs_Express - Fatal编程技术网

Javascript 我无法从express获取参数

Javascript 我无法从express获取参数,javascript,node.js,reactjs,express,Javascript,Node.js,Reactjs,Express,我是一个新的表达,nodejs和反应使用,我想使网络应用程序。现在我正在尝试使用一些GET参数进行一些查询,我不知道该怎么做,因为我无法获取它们。不确定我是否需要使用一些新技术,或者我只是做错了什么 我的服务器: const express = require('express'); const bodyParser = require('body-parser'); const pgp = require('pg-promise')(/* options */) const app = exp

我是一个新的表达,nodejs和反应使用,我想使网络应用程序。现在我正在尝试使用一些GET参数进行一些查询,我不知道该怎么做,因为我无法获取它们。不确定我是否需要使用一些新技术,或者我只是做错了什么

我的服务器:

const express = require('express');
const bodyParser = require('body-parser');
const pgp = require('pg-promise')(/* options */)
const app = express();
const port = process.env.PORT || 5000;


app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
var urlencodedParser = bodyParser.urlencoded({ extended: true })

app.get('/aboutus',urlencodedParser, (req, result) => {
  console.log(req.query);
  result.send({text:req.url});
});
我的客户方面:

 componentDidMount() {
    fetch('/aboutus')
      .then(res => res.json())
      .then(
        (result) => {
          this.setState({
            about: result,
          });
        },
        (error) => {
          this.setState({
          about:  error
          });
        }
      )
以及我的依赖关系:

{
  "name": "example-react-app-express",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.5.0",
    "@testing-library/user-event": "^7.2.1",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-router-dom": "^5.2.0",
    "react-scripts": "3.4.3"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "proxy": "http://localhost:5000/",
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

api工作正常,发送数据,但使用req变量会给我在获取中使用的url(当我获取/aboutus?id=5时,我确实获取了id参数,但我总是从浏览器获取url并获取该参数似乎不正确…)
我看到一些人在使用CORS,但我不知道是否需要它,或者最好的方法是什么

HTTP请求是独立的。一个请求中的查询字符串不会自动出现在另一个请求中

如果您询问
/aboutus
,则没有查询字符串

如果您要求
/aboutus?id=5
,则有一个


如果您想在请求之间共享数据,那么考虑会话或cookies。< /p>“当我获取/abut.id=5时,我确实得到ID参数”-UMM。对如果您不发送查询字符串,为什么服务器应该能够读取它?好的,那么我认为不正确的事情就可以了?我是否应该始终从浏览器获取url,并在fetch(getURL())之类的fetch函数中使用它?因为我认为express会自己(不知何故)获取url,而且它会工作……好吧,所以解决方案是用fetch(window.location.href)替换fetch('/aboutus'),也许可以删除url的开头,它会工作,并且可以使用这样的代码吗?是的。它需要是

fetch('/aboutus?id=5')
fetch('/aboutus?id='+id_值)
或类似的内容。GET请求非常简单。请求非常简单,没有什么比这更复杂的了——它在URL字符串中都是可见的