繁体   English   中英

Node / Express BodyParser不从输入字段返回数据或返回“未定义”

[英]Node/Express BodyParser not returning data from input fields or returning “undefined”

我有一个基本的快递设置。 我正在尝试做一些在教程上看起来很简单但对我完全无效的事情。 我试图捕获用户在两个输入(文本输入和下拉输入)中输入的数据。

我的app.js文件如下所示:

var express = require('express');
var bodyParser = require('body-parser');
var path = require('path');
var pug = require('pug');

// initialize express
var app = express();

// set up port
var port = process.env.PORT || 1337;

// setting up bodyParser middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true}));

// setting up views
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
app.use(express.static(path.join(__dirname, 'public')));

// initial homepage get
app.get('/', function(req, res) {
    res.render('index');
});

app.post('/', function(req, res) {
    var input = req.body.userInput;
    var quantity = req.body.quantity;

    console.log("input is: " + input);
    console.log("quantity is: " + quantity);
});

// listening on port
app.listen(port, function(err) {
    if (err) throw err;
    console.log("Server is running on port " + port);
});

我的哈巴狗文件格式如下:

.card
   .card-body
     form(action='/', method="POST")
       .form-row
          input.form-control(type='text', placeholder="Search for an item by its id", name="userInput")
       .form-row.mt-2
          .form-group
             select.form-control(name="quantity")
                option(value='1') Qty: 1
                option(value='2') Qty: 2
                option(value='3') Qty: 3
                option(value='4') Qty: 4
                option(value='5') Qty: 5
   .card-footer
        button.btn.btn-outline-secondary(type='submit')
           i.fas.fa-shopping-cart.mr-2
           | Add to my cart

一切都正确呈现。 我为我拥有的每个表单输入都指定了一个“名称”字段,然后尝试从app.js文件中的req.body。(名称)获取数据。 但是,当我运行它并输入数据时,控制台日志中什么也没有显示。

问题不在body-parser而在HTML中。 如果从开发人员控制台进行检查,则单击该按钮时不会看到请求被执行,这是因为该按钮不在表单内,因此什么也不做。

取出.card-footer以使按钮位于表单内,您将收到带有参数的请求。 由于post处理程序不返回任何内容,因此该请求将挂起,但是您会在控制台中看到该参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM