Javascript 节点JS将用户输入保存到文本文件中

Javascript 节点JS将用户输入保存到文本文件中,javascript,html,node.js,Javascript,Html,Node.js,我有一个本地服务器运行着NodeJS。然后我有几个选择标签,我想在用户选择后,将他们的inout保存到一个文本文件中?有人能帮我解决这个问题吗?此外,当我按下submit时,终端上会出现一个未定义的 节点js代码: var express = require('express'); var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.json()); var port = process

我有一个本地服务器运行着NodeJS。然后我有几个选择标签,我想在用户选择后,将他们的inout保存到一个文本文件中?有人能帮我解决这个问题吗?此外,当我按下submit时,终端上会出现一个未定义的

节点js代码:

var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
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"  > <!--action-page.php-->

        <select name="option" size="1" style="width:80px;" required id="rankx">
          <option value="" selected disabled hidden>Option</option>
          <option value="1">1</option>
          <option value="2">2</option>
        </select>

      <br />
        <select name="option" size="1" style="width:80px;" required>
          <option value="" selected disabled hidden>Rank</option>
          <option value="1">1</option>
          <option value="2">2</option>
        </select>

  <input type="submit" value="Submit" name="submit" id="submit"/>
问题1 您的表单正在提交application/x-www-form-urlencoded格式的数据,而不是JSON格式的数据

您需要一个能够处理application/x-www-form-urlencoded的主体解析器

问题2 您有名为option和submit的输入,但您正在寻找一个名为rank的输入


您必须将输入名称与您要查找的内容相匹配。

在node js文件中使用此代码 const bodyParser=需要“body-parser”; app.usebodyParser.json;//用于解析application/json app.usebodyParser.urlencoded{extended:true};//用于解析应用程序/x-www-form-urlencoded\
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());