我有以下代码
<!--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页面加载之前甚至需要一些表单数据
我可以通过其他方式发送数据吗?
答案 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模块一起使用。
我曾使用快速服务器来处理我的静态文件。