通过Get方法将数据发送到NodeJS服务器

时间:2019-09-21 20:56:49

标签: javascript node.js express get

我想使用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?

3 个答案:

答案 0 :(得分:0)

您可以使用QueryString方法通过URL将数据发送到服务器; 就像这样:

example.com/?id=232

id是QueryString,您可以通过req.params.id在Express中获取此变量

答案 1 :(得分:0)

POST方法用于将数据发送到端点,而GET方法用于从端点请求数据。

如果需要将特定数据发送到端点,请使用查询参数。 在端点上访问它以获取服务器端逻辑。

请参阅此article以获得更好的理解

答案 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' }