NodeJS没有提交回复

时间:2018-02-12 11:37:08

标签: javascript html node.js

我正在运行本地服务器,并为用户提供输入表单。我想在他们按下提交时只是输出一条消息"谢谢!"。相反,当按下提交时,没有任何反应,一段时间后我收到服务器断开连接的消息。有人可以帮帮我吗?

的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>

2 个答案:

答案 0 :(得分:1)

您的帖子处理程序什么都不做

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

答案 1 :(得分:0)

它的发生是因为你在你的帖子处理程序中永远不会向客户端产生任何反馈,只需登录到控制台排名。尝试像

这样的东西
app.post('/submit', function(req, res){
 console.log(req.body.rank);
 res.json(req.body.rank);
});