【发布时间】:2015-01-12 13:58:37
【问题描述】:
我在 NodeJS/ExpressJS 应用程序中有一个超级简单的表单,但无法发布。
app.js 代码(我称之为 server.js)如下所示。
var express = require('express');
var fs = require('fs');
var path = require('path');
var urlEncoded = require('urlencoded-request-parser');
var bodyParser = require('body-parser');
var server = express();
var port = process.env.port || 1337;
server.use(urlEncoded());
server.use(bodyParser.urlencoded({extended: true}));
var routePath="./routes/";
fs.readdirSync(routePath).forEach(function(file) {
var route=routePath+file;
require(route)(server);
});
server.set('view engine', 'ejs');
server.set('views', __dirname);
server.listen(port);
我的帖子表单(post.ejs)
<form method="post" action="post-put">
<fieldset>
<!-- Form Name -->
<legend>Which Test Type</legend>
<!-- Multiple Radios (inline) -->
<div class="form-group">
<label class="col-md-2 control-label" for="TestType">Please test our</label>
<div class="col-md-4">
<label class="radio-inline" for="TestType-0">
<input type="radio" name="SoftwareTestType" id="TestType-0" value="SoftwareTest" checked="checked">
Software
</label>
<label class="radio-inline" for="TestType-1">
<input type="radio" name="HardwareTestType" id="TestType-1" value="HardwareTest">
Hardware
</label>
</div>
</div>
</fieldset>
<input type='submit' class="btn btn-default" id='submit' value='Submit your Test'/>
</form>
结果显示在这个页面(post-results.ejs)
<%= Test %>
我有两条路线(post-get.js)
module.exports = function(server){
server.get('/post', function(req,res){
res.render('./views/test/post.ejs',{
});
});
}
和(post-puts.js)
module.exports = function(server){
server.post('post-put', function(req,res){
console.log("In Submission POST")
var TestType = "";
if(req.body.HardwareTestType == true)
TestType = "Hardware";
else
TestType = "Software";
res.render('./views/test/post-results.ejs',{
Test: TestType
});
});
}
当我点击提交按钮时,开发者工具会显示:
这让我发疯了。有谁知道如何将结果发布到 post-results.ejs 文件。应用程序的文件系统布局如下所示:
更新: 表单和路由器都具有相同的“post-puts”路径。 在 post-puts 路由中有一个 console.log() ...但它没有被调用。 我认为它仍然可能是如图 2 所示的应用程序类型(开发人员工具) 当一个“东西”只有一个功能时,说它不起作用是具体的——如果我能更具体一点,我会知道问题出在哪里并解决它。
【问题讨论】:
标签: javascript node.js express routes form-submit