【发布时间】:2017-06-28 11:33:42
【问题描述】:
我正在尝试一个简单的表单提交代码,并且我正在使用 post 方法。 我的 server.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>
我的 ra.js 是
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;
现在,从索引页面,当我在表单中键入路径并按下提交时,在 console.log 中,“req.body”返回为“未定义”。
ra.js 中的大部分代码都被注释或没有更新,因为“req.body”值首先不可用。我需要先纠正它。
我已经在互联网上进行了搜索,试图找出我的代码中的错误,但我徒劳无功,我无法发现它。非常感谢任何帮助
节点版本:v6.11.0
正文解析器:1.17.2 快递:4.15.3 ejs :2.5.6
【问题讨论】:
-
server.js 缺少 app.use(bodyParser.json());并且无论该文件是 ^_^,您都不需要正文解析器 ra.js。如果您是 ExpressJS 的新手,我建议您使用此模板 npmjs.com/package/express-generator-dg - 并从那里获取它,每一行代码都会被解释。
标签: node.js