我有一个正在运行的本地服务器和一个供用户输入的表单。我希望当他们按下提交时简单地输出一条消息“谢谢!”。相反,当按下提交时,没有任何反应,一段时间后我收到服务器断开连接的消息。有人可以帮我吗?
NodeJS:
var fs = require('fs');
const log=require('simple-node-logger').createSimpleLogger();
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
var port = process.env.PORT || 8000;
app.use(express.static(__dirname + '/server'));
app.use(express.static(__dirname + '/public'));
app.use('/images', express.static(__dirname +'/images'));
app.get('/', function(req, res){
res.sendfile('main.html');
});
//app.listen(port, function(){
// console.log('server is running on ' + port);
//});
app.post('/submit', function(req, res){
console.log(req.body.rank);
});
HTML:
<form method="POST" action="/submit" >
<img src="images/Picture1.png" style="width:280px;"/>
<br />
<select name="rank" size="1" style="width:80px;" required>
<option value="" selected disabled hidden>Rank</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<br />
<input type="submit" value="Submit" name="submit" id="submit"/>
</form>
最佳答案
您的帖子处理程序不执行任何操作
app.post('/submit', function(req, res){
console.log(req.body.rank);
});
您可以执行以下操作,
使用 res.redirect 重定向到另一条路由:
app.post('/submit', function(req, res){
console.log(req.body.rank);
// redirect on /
return res.redirect("/");
});
渲染成功的html文件:
app.post('/submit', function(req, res){
console.log(req.body.rank);
// render success
return res.sendfile('success.html');
});
返回json:
app.post('/submit', function(req, res){
console.log(req.body.rank);
// render success
return res.status(200).json({message: "OK"})
});
关于javascript - NodeJS 提交时无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48745589/