Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Express nodejs req.body返回未定义的_Node.js - Fatal编程技术网

Node.js Express nodejs req.body返回未定义的

Node.js Express nodejs req.body返回未定义的,node.js,Node.js,我正在尝试一个简单的表单提交代码,我正在使用post方法。 myserver.js代码 //N-4E;V-56;I-49 //var http = require('http'); var express = require('express'); var bodyParser = require('body-parser'); var fs = require('fs'); var idx = require('./index.js'); var ra = require('./ra.js')

我正在尝试一个简单的表单提交代码,我正在使用post方法。 myserver.js代码

//N-4E;V-56;I-49
//var http = require('http');
var express = require('express');
var bodyParser = require('body-parser');
var fs = require('fs');
var idx = require('./index.js');
var ra = require('./ra.js');

var app = express();

app.engine('html',require('ejs').renderFile);
app.set('view engine', 'html');
app.set('port',process.env.PORT || 5649);
app.use(bodyParser.urlencoded({extended: true}));

app.use('/',idx);

app.use('/reg_path',ra);

app.listen(app.get('port'),function(){
    console.log('Express started press asdfadsfasdfasdf');
    });
我的index.js

var express = require('express');
var fs = require('fs');

var router = express.Router();

router.get('/',function(req,res,next){
    //res.sendHeader(.)
    res.render('index.ejs',{});
    //res.render('title.ejs',{});
    });

module.exports = router;
我的index.ejs

<!DOCTYPE html>
<html>
    <head>
    </head>
    </body>
    <div id="reg_path">
      <p>Enter the Regressions Folder Path</p>
      <form action="/reg_path" method="post" enctype="multipart/form-data">
    <fieldset>
      <label for="path">Path:</label>
      <input type="text" id="path" name="path" placeholder="Enter the     Absolute path"/>
      <input type="submit" value="Enter"/>
    </fieldset>
      </form>
    </div>
    </body>
</html>
现在,从索引页面,当我在表单中键入路径并按submit键时,在console.log中,“req.body”返回为“undefined”

由于'req.body'值首先不可用,因此ra.js中的大多数代码都被注释或未更新。我需要先纠正它

我在互联网上搜索,试图找出我代码中的错误,但令我徒劳的是,我无法发现它。非常感谢您的帮助

节点版本:v6.11.0

正文解析器:1.17.2 快车:4.15.3
ejs:2.5.6

您的表单使用
enctype=“multipart/form data”
这是
主体解析器不支持的编码类型

如果您需要使用这种类型(例如,如果您要从表单上载文件),请查看


否则,请省去
enctype
属性,这样表单将默认为
application/x-www-form-urlencoded

您的表单使用
enctype=“multipart/form data”
这是
主体解析器不支持的编码类型

如果您需要使用这种类型(例如,如果您要从表单上载文件),请查看


否则,请省略
enctype
属性,这样表单将默认为
application/x-www-form-urlencoded

server.js缺少app.use(bodyParser.json());您不需要body parser ra.js,不管该文件是什么。如果你是ExpressJS新手,我建议你使用这个模板——从那里开始,每一行代码都会得到解释。server.js缺少app.use(bodyParser.json());您不需要body parser ra.js,不管该文件是什么。如果你是ExpressJS新手,我建议你使用这个模板——从这里开始,每一行代码都会被解释。谢谢。我已经删除了enctype属性,它解决了我的问题。表单只包含一个条目(输入),因此不需要enctype属性。谢谢。我已经删除了enctype属性,它解决了我的问题。表单只包含一个条目(输入),因此不需要enctype属性。
var express = require('express');
var bodyParser = require('body-parser');
var fs = require('fs');

var app = express.Router();
var path;
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());

app.post("/",function(req,res){
    console.log(req.body.path);
    path = req.body.path;
    fs.access('path',fs.constants.F_OK, (err) => {
        if (err) throw err;
        res.redirect('./index');
        //if (err) {
        //  res.writeHead(404,{'Content-Type':'text/plain'});
        //    return res.end('The specified path "' + path + '" does not     exists');
        //}
    });
    //fs.access('path',fs.constants.R_OK, (err) => {
    //  //if (err) {
    //  //  res.writeHead(404,{'Content-Type':'text/plain'});
    //  //  return res.end('The specified path "' + path + '" has no READ     permissions');
    //  //}
    //});
});



module.exports = app;