node.js中 stream使用教程
這些日子跑去學(xué)了一下OC,但是還沒有學(xué)成。離轉(zhuǎn)行的時(shí)間還有很長(zhǎng),順便回顧一下node的知識(shí)。
每種語言來來去去的人很多,但我就離不開node。我并不是使用它開發(fā),只是使用js相對(duì)多一些,因此還是研究node比較好,stream在node的地位是很高的。閑時(shí)也來看看這個(gè)內(nèi)容,在node的路上,我還是新手。
今天下載了nodeschool的課程看,其中有一個(gè)例子。(我修改了一點(diǎn)點(diǎn))
var concat = require('concat-stream');
var http = require('http');
var qs = require('querystring');
var server = http.createServer(function (req, res) {
if (req.method === 'POST') {
req.pipe(concat(function (body) {
body = qs.parse(body.toString())
res.end(Object.keys(body).join('\n'));
}));
}
else res.end();
});
server.listen(5000);
這題的意思是,讓你把post數(shù)據(jù)反轉(zhuǎn),我就不做了,原理是一樣的,只是需求不同。我們利用concat這個(gè)插件,當(dāng)表單提交時(shí),就把數(shù)據(jù)流導(dǎo)向concat,這個(gè)例子是取from表單post的數(shù)據(jù)。
為了測(cè)試,我使用request庫(kù)。
var request = require(‘request')
request.post(‘ http://127.0.0.1:5000 ‘, {form:
{
“name”: “ryan”,
“age” : 23
}
}, function(err,res,body){
console.log(‘接收成功:')
console.log(res[‘body']) // name age
})
啟動(dòng)server,然后運(yùn)行測(cè)試,可以看到我們把這個(gè)對(duì)象post過去了。concat-stream這個(gè)模塊主要是做buffer的連接,我的理解是,當(dāng)你以buffer的形式傳輸,這樣就可以傳輸任何的類型了,在npmjs,它傳輸?shù)氖且粋€(gè)圖片,由于我們接收完之后,就得到了這個(gè)圖片的數(shù)據(jù),我們就可以利用這個(gè)做上傳,復(fù)制,道理都相通的。
相關(guān)文章
詳解nodejs微信公眾號(hào)開發(fā)——3.封裝消息響應(yīng)模塊
上一篇文章:nodejs微信公眾號(hào)開發(fā)(2)自動(dòng)回復(fù),實(shí)現(xiàn)了簡(jiǎn)單的關(guān)注回復(fù)。采用拼接字符串的形式,并不是很方便,這里我們將其封裝承接口。2017-04-04
Node.js利用js-xlsx處理Excel文件的方法詳解
這篇文章主要給大家介紹了關(guān)于Node.js利用js-xlsx處理Excel文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-07-07
NodeJs讀取JSON文件格式化時(shí)的注意事項(xiàng)
本文是作者在進(jìn)行NodeJs開發(fā)時(shí)偶然發(fā)現(xiàn)的問題,經(jīng)過一番努力,最終找到解決方案,分享給大家,有需要的小伙伴可以參考下2016-09-09

