这个联想320S-15的联想台式电脑多少钱钱?

node.js依赖express解析post请求四种数据格式() - 简书
node.js依赖express解析post请求四种数据格式()
分别是这四种:
www-form-urlencoded,
form-data,
application/json,
www-form-urlencoded这是http的post请求默认的数据格式,需要body-parser中间件的支持服务器端的demo:var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
extended:true
app.post('/urlencoded', function(req, res){
console.log(req.body);
res.send(" post successfully!");
app.listen(3000);
可以用postman进行测试,这里就不赘述。
form-data这种方式一般用于数据上传,需要中间件connect-multiparty的支持服务器端的demo:var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();
app.post('/formdata',multipartMiddleware, function (req, res) {
console.log(req.body);
res.send("post successfully!");
application/jsonbody-parser中间件支持json解析, 添加中间件进行解析即可app.use(bodyParser.json());
text/xmlbody-parser默认不支持这种数据格式
解决方法:把请求体参数按照字符串读取出来,然后使用 xml2json 包把字符串解析成json对象,然后对json对象进行操作,方便得多。
注意:我们还是要使用 body-parse 得到字符串,然后再转化.利用req上定义的事件
data 来获取http请求流, end 事件结束请求流的处理.利用 xml2json 把上面得到的请求参数流(我们直接转化为字符串)转化为 json 对象.demo如下:var express = require('express');
var bodyParser = require('body-parser');
var xml2json=require('xml2json');
var app = express();
app.use(bodyParser.urlencoded({
extended: true
app.post('/xml', function (req, res) {
req.rawBody = '';//添加接收变量
var json={};
req.setEncoding('utf8');
req.on('data', function(chunk) {
req.rawBody +=
req.on('end', function() {
json=xml2json.toJson(req.rawBody);
res.send(JSON.stringify(json));
app.listen(3000);
我不应该在简单与困难之间选择,而应该在正确与错误之间选择!
刻意练习: 如果我一直做简单的事情而规避困难的部分,那我将永远在入门的水平上止步不前!node & &post请求
1&&&&&&&&&& &&&&&&&&var alldata = &&;
2&&&&&&&&&& &&&&&&&&//下面是post请求接收的一个公式
3&&&&&&&&&& &&&&&&&&//node为了追求极致,它是一个小段一个小段接收的。
4&&&&&&&&&& &&&&&&&&//接受了一小段,可能就给别人去服务了。防止一个过大的表单阻塞了整个进程
5&&&&&&&&&& &&&&&&&&req.addListener(&data&,function(chunk){
6&&&&&&&&&& &&&&&&&&&&&&alldata +=
7&&&&&&&&&& &&&&&&&&});
8&&&&&&&&&& &&&&&&&&//全部传输完毕
9&&&&&&&&&& &&&&&&&&req.addListener(&end&,function(){
10&&&&&& &&&&&&&&&&&&console.log(alldata.toString());
11&&&&&& &&&&&&&&&&&&res.end(&success&);
12&&&&&& &&&&&&&&});
原生写POST处理,比较复杂,要写两个监听。文件上传业务比较难写。
所以,用第三方模块。formidable。
form.parse(req,&function(err,&fields,&files)&{
&&&&&&res.writeHead(200,&{'content-type':&'text/plain'});
&&&&&&res.write('received&upload:\n\n');
&&&&&&res.end(util.inspect({fields:&fields,&files:&files}));
只要涉及文件上传,那么form标签要加一个属性:
1&&&&&&&&&& &form action=&http://127.0.0.1/dopost& method=&post&enctype=&multipart/form-data&&
* 修改上传的文件名
var http = require(&http&);
var formidable = require('formidable');
var util = require(&util&);
var fs = require(&fs&);
var sd = require(&silly-datetime&);
var path = require(&path&);
//创建服务器
var server = http.createServer(function(req,res){
//如果你的访问地址是这个,并且请求类型是post
if(req.url == &/dopost& && req.method.toLowerCase() == &post&){
//Creates a new incoming form.
var form = new formidable.IncomingForm();
//设置文件上传存放地址
form.uploadDir = &./uploads&;
//执行里面的回调函数的时候,表单已经全部接收完毕了。
form.parse(req, function(err, fields, files) {
//if(err){
//console.log(util.inspect({fields: fields, files: files}));
//时间,使用了第三方模块,silly-datetime
var ttt = sd.format(new Date(), 'YYYYMMDDHHmmss');
var ran = parseInt(Math.random() * 89999 + 10000);
var extname = path.extname(files.tupian.name);
//执行改名
var oldpath = __dirname + &/& + files.tupian.
//新的路径由三个部分组成:时间戳、随机数、拓展名
var newpath = __dirname + &/uploads/& + ttt + ran +
fs.rename(oldpath,newpath,function(err){
throw Error(&改名失败&);
res.writeHead(200, {'content-type': 'text/plain'});
res.end(&成功&);
}else if(req.url == &/&){
//呈递form.html页面
fs.readFile(&./form.html&,function(err,data){
res.writeHead(200, {'content-type': 'text/html'});
res.end(data);
res.writeHead(404, {'content-type': 'text/html'});
res.end(&404&);
server.listen(80,&192.168.41.36&);
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:20800次
排名:千里之外
原创:40篇
转载:18篇
(8)(2)(1)(1)(8)(18)(5)(2)(16)Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用
本篇文章主要介绍了node.js依赖express解析post请求四种数据格式,主要是www-form-urlencoded,form-data,application/json,text/xml,有兴趣的可以了解一下。
node.js依赖express解析post请求四种数据格式
分别是这四种:
www-form-urlencoded
application/json
1、www-form-urlencoded
这是http的post请求默认的数据格式,需要body-parser中间件的支持
服务器端的demo:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
extended:true
app.post('/urlencoded', function(req, res){
console.log(req.body);
res.send(" post successfully!");
app.listen(3000);
可以用postman进行测试,这里就不赘述。
2、form-data
这种方式一般用于数据上传,需要中间件connect-multiparty的支持
服务器端的demo:
var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();
app.post('/formdata',multipartMiddleware, function (req, res) {
console.log(req.body);
res.send("post successfully!");
3、application/json
body-parser中间件支持json解析, 添加中间件进行解析即可
app.use(bodyParser.json());
4、text/xml
body-parser默认不支持这种数据格式
解决方法:把请求体参数按照字符串读取出来,然后使用 xml2json 包把字符串解析成json对象,然后对json对象进行操作,方便得多。
注意:我们还是要使用 body-parse 得到字符串,然后再转化.
利用req上定义的事件 data 来获取http请求流, end 事件结束请求流的处理.
利用 xml2json 把上面得到的请求参数流(我们直接转化为字符串)转化为 json 对象.
demo如下:
var express = require('express');
var bodyParser = require('body-parser');
var xml2json=require('xml2json');
var app = express();
app.use(bodyParser.urlencoded({
extended: true
app.post('/xml', function (req, res) {
req.rawBody = '';//添加接收变量
var json={};
req.setEncoding('utf8');
req.on('data', function(chunk) {
req.rawBody +=
req.on('end', function() {
json=xml2json.toJson(req.rawBody);
res.send(JSON.stringify(json));
app.listen(3000);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持phperz。
Copyright &
All Rights Reserved &&&&&&

我要回帖

更多关于 联想电脑装系统多少钱 的文章

 

随机推荐