從入門到放棄
導(dǎo)語
Nodejs是使用javascript編寫站超,運行在服務(wù)器上的,實際上就是用的瀏覽器的V8引擎。
一.基本內(nèi)容
我也不知道該寫什么QAQ瓶蚂,反正很多都是和javascript一樣的,不同的是在node環(huán)境下才能運行宣吱。有很多個模塊窃这,第一次使用還要安裝,各個模塊之間通過require
來關(guān)聯(lián)征候。
二.一個發(fā)微博的小demo
- 用到http,querystring兩個模塊杭攻,先關(guān)聯(lián)先
var http=require('http');
var querystring=require('querystring');
- 將要發(fā)送的內(nèi)容轉(zhuǎn)碼
使用querystring.stringify
方法將內(nèi)容轉(zhuǎn)義洒试,具體的格式需要去你的目標網(wǎng)站的ajax請求里看,以微博為例
//weibo.com里的
var postData=querystring.stringify({
'location':'v6_content_home',
'style_type':1,
'text':'此條信息由代碼發(fā)送',
'module':'stissue',
'pub_source':'main_',
'pub_type':'dialog',
'_t':0
});
- 寫數(shù)據(jù)頭
var options={
hostname:'weibo.com',
part:80,
path:'/aj/mblog/add?ajwvr=6&__rnd=1473507636522',
method:'POST',
headers:{
'Accept':'*/*',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.8,en;q=0.6',
'Connection':'keep-alive',
'Content-Length':postData.length,
'Content-Type':'application/x-www-form-urlencoded',
'Cookie':'SINAGLOBAL=4985208110960.924.1470552230960; wvr=6; un=wozhishigekanke@sina.com; YF-V5-G0=55fccf7be1706b6814a78384fa94e30c; SCF=AsV_DxZ8YydDJVCeTBVIDfNvxpRFRBswSB_o_hv11cKZsl4keccX7lzPaDqiR2v7S89y8QhoMeUu9nguMgdTgD8.; SUB=_2A25614FUDeTxGeRM6lUT8CfMyziIHXVZpPWcrDV8PUNbmtBeLU2tkW8m9eMNf_wMo7nalyuVEev2sdALqg..; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9W5WdJVuCl-za7_NhdBXHHNZ5JpX5KMhUgL.FozEeKMEeh.7ehB2dJLoI0qLxKBLBonL12BLxK-L12qLB-2LxKqL1KnLB-qLxKBLBonLB-2LxKML1-eL12zLxK-LB--LBKzt; SUHB=0FQ660L0xrePgJ; ALF=1505043588; SSOLoginState=1473507589; _s_tentry=login.sina.com.cn; UOR=,,login.sina.com.cn; Apache=8404689097517.37.1473507589378; ULV=1473507590825:68:20:13:8404689097517.37.1473507589378:1473474011382; YF-Page-G0=074bd03ae4e08433ef66c71c2777fd84',
'Host':'weibo.com',
'Origin':'http://weibo.com',
'Referer':'http://weibo.com/u/2217209004/home?wvr=5',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36',
'X-Requested-With':'XMLHttpRequest'
}
}
- 發(fā)送http請求
var req=http.request(options,function(res){
//打印狀態(tài)碼和頭信息
console.log('Status:'+res.statusCode);
console.log('headers'+JSON.stringify(res.headers));
//信息流,觸發(fā)
res.on('data',function(chunk){
//看返回的
console.log(Buffer.isBuffer(chunk));
console.log(typeof chunk);
});
//結(jié)束后打印信息
res.on('end',function(){
console.log('評論完畢F由稀垒棋!');
});
});
//有錯誤的話拋出錯誤信息
req.on('error',function(e){
console.log('Error'+e.message);
});
//將數(shù)據(jù)寫入請求
req.write(postData);
//手動結(jié)束,即使沒有數(shù)據(jù)
req.end();
然后就大功告成啦;驹住5鸺堋!