【问题标题】:Post method values returned null in node jsPost 方法值在节点 js 中返回 null
【发布时间】:2021-05-04 22:10:23
【问题描述】:

当提交表单时,表单字段的值没有出现在 post 方法中。

这是 index.html 文件中的代码

<form method="POST" action="http://localhost:4000/insertion">
    <div class="form-group">
        <label>E-Mail</label>
        <input type="text" name="email" class="form-control" >
    </div>
    <div class="form-group">
        <label>Password</label>
        <input type="password" name="password" class="form-control" >
    </div>
    <div class="form-group">
        <label>&nbsp;</label>
        <input type="submit" name="submit" class="btn btn-primary" value="Submit">
    </div>
</form>

在服务器端的脚本代码是

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

var app = express();

app.use(bodyParser.json())

app.use(cors());

app.post('/insertion',function(request,response){
    console.log(request.body);
});

app.get('/index',function(request,response){
    response.send('hi ');
});

app.listen(4000);

它没有显示任何错误但值为空

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    您需要使用bodyParser.urlencoded 来读取表单数据。

    添加并重试。

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

    【讨论】:

    • app.use(bodyParser.json()) app.use(bodyParser.urlencoded({extended: false }));
    • 能不能查this answer看看有没有用
    • 仍然重复空对象{}
    【解决方案2】:

    需要在app.use(bodyParser.json())后面加上app.use(bodyParser.urlencoded({extended: false}))。可以看文档here

    const express = require('express');
    const bodyParser = require('body-parser');
    const cors = require('cors');
    
    var app = express();
    
    app.use(bodyParser.json())
    app.use(bodyParser.urlencoded({extended: false}))
    
    app.use(cors());
    
    app.post('/insertion',function(request,response){
        console.log(request.body);
    });
    
    app.get('/index',function(request,response){
        response.send('hi ');
    });
    
    app.listen(4000);
    

    【讨论】:

    • app.use(bodyParser.json()) app.use(bodyParser.urlencoded({extended: false }));
    【解决方案3】:

    按照这个...需要在url函数中传递值

    var urlencodedParser = bodyParser.urlencoded({ extended: false });
    
    app.post('/formdata',urlencodedParser,function(req,res){
        console.log(req.body);
    });
    

    【讨论】:

      猜你喜欢
      • 2017-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      相关资源
      最近更新 更多