我想使用get方法将一些数据或请求发送到我的节点服务器,并接收这些数据并在服务器端对其进行操作。我知道有一些使用邮递员的方法,但是我想从网页发送它。使用发布成功接收到数据。这是我正在使用的代码:
//server.js
var express = require('express');
var app = express();
app.listen(3000, () => console.log('server is running on port 3000'));
app.use(express.json({limit: '5mbs'}));
app.use(express.static('client'));
app.get('/', (req, res) => {console.log(req)});
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>chat</title>
</head>
<body>
<h1>server is sending html</h1>
<script src="index.js"></script>
</body>
</html>
index.js
const a = 5;
console.log(a);
options = {
method: "get",
headers: {"ContentType" : "application/json"},
};
fetch('/', options)
如您所见,我正在尝试以json格式发送此数据,但是在我的代码中没有要发送的数据,但是使用post,我至少能够接收到请求,并且我能够console.logit,然后解析req.body。但是有了get,没有req.body,甚至无法console.log req,而且我在控制台上没有任何错误或某些东西。那么这是怎么回事,例如,我怎么能发送常数a?
答案 0 :(得分:0)
您可以使用QueryString方法通过URL将数据发送到服务器; 就像这样:
example.com/?id=232
id
是QueryString,您可以通过req.params.id
在Express中获取此变量
答案 1 :(得分:0)
答案 2 :(得分:0)
所以看起来我的代码缺少两件事 首先,我没有发送任何请求,因为fetch函数仅采用url ='/',因此没有任何内容从客户端('index.js')发送到服务器,而解决方案是在其中添加一些内容是变量a。
fetch('/' + a);
,第二件事要做的是在server.js上,位于app.get函数的url参数中的'/:a'处,因此它可以将所有内容存储在'/'右边(以及在右边的“ /”之前)并将其放在变量a
上app.get('/:a', (req, res) => {console.log(req.params)});
req.params是一个将具有此密钥的对象:val对 可以说我们还有一个要发送的值b:
fetch('/' + a + '/' + b)
并接收它
app.get('/:a/:b', (req, res) => {console.log(req.params)});
这将打印
{ a: '5', b: '6' }