将html表单数据发送到节点js

时间:2018-04-28 18:08:35

标签: javascript html node.js forms

我有以下代码

    <!--index.html-->

  <form id = "lang" action="/myform" method="POST" >
    <input type="text" name="mytext" required />
    <input type="submit" value="Submit" />
</form>

//index.js

  var fileServer = new(nodeStatic.Server)();

  var app = http.createServer( function(req, res){

  fileServer.serve(req, res); 

}).listen(port);

var io = socketIO.listen(app);

io.sockets.on('connection', function(socket) {

  console.log('recieved connection ');
  // convenience function to log server messages on the client

如何使用id&#34; lang&#34;在文本框中发送数据?转到index.js并将其存储在某个变量中?

使用express将其作为参数放在http.createServer()中并在回调中执行filsServer.serve(req, res)

express = require('express');
app2 = express();
http = require('http');

    app2.post('/myform', function(req, res){

    console.log(req.body.mytext); 

  });

var app = http.createServer(app2, function(req, res){

 fileServer.serve(req, res);  

}).listen(8082);

这显然不会起作用,因为我需要加载index.html页面以填写表格以开始执行以及通过执行上面的代码,程序在html页面加载之前甚至需要一些表单数据

我可以通过其他方式发送数据吗?

1 个答案:

答案 0 :(得分:0)

我得到了它的工作。这是代码:

var express = require('express');
var app2 = express(); 
var bodyParser = require("body-parser");
var path = require('path');
var socketIO = require('socket.io');

app2.use(bodyParser.urlencoded({ extended: false }));
app2.use(bodyParser.json());

var app = http.createServer(app2);
`var io = socketIO.listen(app);`

app2.use( express.static(__dirname));

app2.post('/form', function(req, res){

  var lang = req.body.mytext;
  console.log( req.body.mytext);
  res.send(lang);
});

app.listen(8081);

尽管使用express创建了服务器,我仍然需要使用HTTP模块创建服务器,因为快速服务器不能与socket.io模块一起使用。

我曾使用快速服务器来处理我的静态文件。