javascript - 我无法从 express 获取 GET 参数
问题描述
我是表达、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 变量给了我在 fetch 中使用的 url(当我获取 /aboutus?id=5 时,我确实得到了 id 参数,但我应该总是从浏览器获取 url 并获取它似乎不正确一...)我看到有些人使用CORS,但我不知道是否需要它或最好的方法是什么
解决方案
HTTP 请求是独立的。来自一个请求的查询字符串不会自动出现在另一个请求中。
如果您要求/aboutus
没有查询字符串。
如果你要求,/aboutus?id=5
那么就有一个。
如果您想在请求之间共享数据,请考虑会话或 cookie。
推荐阅读
- java - 由于 NullPointerException 无法加载文件
- javascript - 将普通函数连接到 Redux 的 mapDispatchToProps
- django - Django 发出 post_save 更新信号
- pyspark - pyspark 检查点在本地机器上失败
- python - Heroku 内部服务器错误(未找到 python 应用程序)烧瓶
- c# - C# 使用 HashAlgorithmProvider 和 SHA.ComputeHash 的不同结果
- java - 检索有条件的 Firebase 数据?
- c# - 我的整数数组存在“字符文字中的字符过多”的问题
- sql - Union 导致将 varchar 转换为 numeric 时出错
- python - 手动安装 pyOpenSSL 和 boto3?由于缺少依赖项,拖放不起作用