Node.js / Express post方法在控制台中记录未定义

时间:2017-10-09 15:30:36

标签: javascript node.js express

这是我的观点upload.ejs页面:

<%- include('header' ,{ title:"Playground" }) -%>
<div class="wrapper">
  <form action="/upload" method="POST" enctype="multipart/form-data">
    <input type="text" name="name" placeholder="Image Name">
    <input type="text" name="description" placeholder="Description">
    <button type="submit" name="submit">Upload</button>
    </form>
</div>
<%- include('footer') -%>

这是我的路线upload.js文件:

var express = require('express');
var router = express.Router();
var db = require('../helpers/db');
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false });

router.get('/', function(req, res, next) {
  res.render('upload');
});

router.post('/', urlencodedParser, function(req, res, next) {
  console.log(req.body.name);
  res.render('upload');
});

module.exports = router;

单击提交按钮后,我在控制台中未定义。如果我尝试控制log req.body,我会变空{}。

1 个答案:

答案 0 :(得分:2)

请注意,bodyparser不会解析多部分(Form -data)数据。您将需要使用另一个包(using Pillow under the hood)。

仅在上传图像,文档等文件时才使用多部分请求。如果您使用的是普通数据,则可以删除,因为多部分请求被认为比正常的后请求更重。

enctype="multipart/form-data"