Express使用POST方法接收客户端提交的POST请求
例子:
server.js
var express = require('express');
var fs = require('fs');
var querystring = require('querystring');
var app = express();
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'localhost',
port : 3306,
database : 'test',
user : 'root',
password : ''
});
app.get('/index.html',function(req,res){
res.writeHead(200,{'Content-Type' : 'text/html'});
res.write('<head><meta charset="utf-8" /></head>');
var file = fs.createReadStream('../index.html');
file.pipe(res);
})
app.post('/index.html',function(req,res){
req.on('data',function(data){
var params = querystring.parse(data.toString());
pool.getConnection(function(err,connection){
if(err){
console.log('与mysql数据库建立连接失败');
}else{
console.log('与mysql数据库建立连接成功');
connection.query('insert into user set ?',{
name : params.name,
sex : params.sex,
age : params.age,
tel : params.tel
},function(err,result){
if(err){
connection.release();
res.send('插入数据失败');
}else{
connection.release();
res.send('插入数据成功');
}
})
}
})
})
})
app.listen(1337,'127.0.0.1',function(){
console.log('服务器正在监听');
})
index.html
<form action="" method="POST">
姓名:<input type="text" name="name" />
性别:<input type="text" name="sex" />
年龄:<input type="text" name="age" />
手机:<input type="text" name="tel" />
<input type="submit" value="提交" />
</form>
测试:执行server.js,浏览器打开localhost:1337/index.html显示表单提交页面,提交数据存库,返回成功提示
注意server.js和index.html的文件路径
另,在Express中,可以使用sendFile方法向客户端发送一个文件,即
app.get('index.html',function(req,res){
res.sendfile(_dirname + '/index.html');
})
此时,index.html也应该是一个完整的HTML文件,而不是代码片段