如何使用Express在Node JS服务器中接收发布数据?

时间:2020-04-29 03:31:09

标签: node.js express post

我尝试了两种中间件,但仍然在终端中获得了此输出:

{}

我的节点js服务器代码:

express = require('express');
bodyParser = require('body-parser');

const app = express();

//the middlewares i tried
app.use(express.urlencoded({extended: false}));
app.use(bodyParser());

app.get('/', (req, res) => {
    res.sendFile(__dirname + '/client.html');
});

app.post('/test', (req, res) => {
   res.send('this is a test path');
   console.log(req.body);
});

app.listen(3000, () => {
  console.log('server listening...');
});

我的表单(client.html文件):

<form method="POST" action="/test">
    <input type="text">
    <input type="submit">
</form>

我也尝试过与邮递员发送帖子数据。我知道html表单中的操作有效,因为我可以在浏览器中看到“这是测试路径”输出

3 个答案:

答案 0 :(得分:1)

尝试

express = require('express');
bodyParser = require('body-parser');

const app = express();


app.use(bodyParser.urlencoded({ extended: false }));


app.get('/', (req, res) => {
    res.sendFile(__dirname + '/client.html');
});

app.post('/test', (req, res) => {
   res.send('this is a test path');
   console.log(req.body);
});

app.listen(3000, () => {
  console.log('server listening...');
});

也是html格式,在输入标记中添加 name 属性

<form method="POST" action="/test">
    <input type="text" name="email">
    <input type="submit">
</form>

答案 1 :(得分:0)

实际上它的作用就像

app.use(express.urlencoded());

错误的是html形式的无名输入

答案 2 :(得分:0)

您应该编写这样的代码

data.json 

location [
  liste of location 
], 
URL [
   list of url
]