gpt4 book ai didi

javascript - Nodejs 非常简单的表单,路由无法发布

转载 作者:太空宇宙 更新时间:2023-11-04 02:30:45 27 4
gpt4 key购买 nike

我在 NodeJS/ExpressJS 应用程序中有一个 super 简单的表单,但无法发布。

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
});
});
}

当我单击提交按钮时,开发人员工具会显示以下内容: Network output of developer tools

这让我发疯。有谁知道如何将结果发布到 post-results.ejs 文件中。应用程序的文件系统布局如下所示:

Project Layout

更新:表单和路由器都有相同的路径“post-puts”。在 post-puts 路由中有一个 console.log() ...但它没有被调用。我认为它仍然可能是如图二所示的应用程序类型(开发人员工具)当一个“东西”只有 1 个功能时,说它不起作用是特定的 - 如果我可以更具体,我会知道问题是什么并解决它。

最佳答案

此 HTML URL 路径 <form method="post" action="/post-put">与代码中的此路径不匹配 server.post('/test/post-put' 。让它们匹配就可以了。

关于javascript - Nodejs 非常简单的表单,路由无法发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26942492/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com