Nodejs 入門(三)

1义黎、模塊化加載

  • 第一種加載方式


    ![2.png](http://upload-images.jianshu.io/upload_images/1744903-00a6c5d4197e7126.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

interface.js

var demo_module = require('./demo_module'); 
demo_module.hello();

main.js

var demo_module = require('./demo_module'); 
demo_module.hello();
  • 第二種加載方式
    hello.js
function Hello(){
    var name;
    this.setName = function(thyName){
        name = thyName;
    };
    this.sayHello= function(){
        console.log('Hello' + name);
    };
};
module.exports = Hello;

main.js

var Hello = require('./hello');

hello = new Hello();
hello.setName('BYVoid3');
hello.sayHello();

2禾进、函數(shù)傳遞

function execute(someFuction, value){
    someFuction(value);
}
execute(function(word){console.log(word)}, "yangqingshan");

3、global

// 輸出全局變量 __filename 當(dāng)前腳本的文件路徑
console.log( __filename );
// 輸出全局變量 __dirname 當(dāng)前腳本所在的文件夾路徑
console.log( __dirname );
setTimeout(cb, ms)
// 全局函數(shù)在指定的毫秒數(shù)后執(zhí)行指定函數(shù) 返回一個(gè)代表定時(shí)器的句柄值
function printHello(){
    console.log("Hello , World!");
}
// 兩秒后執(zhí)行以上函數(shù)
setTimeout(printHello, 2000);
clearTimeout(t)
function printHello(){
    console.log("Hello , World!");
}
// 兩秒后執(zhí)行以上函數(shù)
var t = setTimeout(printHello, 2000);
// 清楚定時(shí)器
clearTimeout(t);
function printHello(){
    console.log("Hello, World!");
}
var t = setInterval(printHello, 2000);
setTimeout(function(){clearInterval(t);}, 6000);
// console:標(biāo)準(zhǔn)控制臺(tái)輸出
// log, info, error, warn, dir, time
console.log('Hello world'); 
console.log('byvoid%diovyb'); 
console.log('byvoid%diovyb', 1991); 
console.trace();
console.info("程序開始執(zhí)行:");
var counter = 10;
console.log("計(jì)數(shù): %d", counter);
console.time("獲取數(shù)據(jù)");
// //
// // 執(zhí)行一些代碼
// // 
console.timeEnd('獲取數(shù)據(jù)');
console.info("程序執(zhí)行完畢廉涕。")
// process
// 是一個(gè)全局變量, 即global對(duì)象的屬性
// 它用于描述當(dāng)前Node.js進(jìn)程狀態(tài)的對(duì)象,提供了一個(gè)與操作系統(tǒng)的簡(jiǎn)單接口.通常在你寫本地命令行程序的時(shí)候,
// 少不了要和它打交道.
// exit beforeExit uncaughtException Signal
process.on('exit', function(code){

    // 以下代碼永遠(yuǎn)不會(huì)執(zhí)行
    setTimeout(function(){
        console.log("該代碼不會(huì)執(zhí)行");
    }, 0 );

    console.log('退出碼為:', code);
});
console.log("程序執(zhí)行結(jié)束");

4.工具類

  • 1.繼承
var util = require('util');
function Base(){
    this.name = 'base';
    this.base = 1991;
    this.sayHello = function(){
        console.log("Hello" + this.name);
    };
}
Base.prototype.showName = function(){
    console.log(this.name);
};
// Base.prototype.sayHello = function(){
//  console.log("Hello" + this.name);
// };
function Sub(){
    this.name = 'sub';
}
// 繼承
util.inherits(Sub, Base);
var objBase = new Base();
objBase.showName();
objBase.sayHello();
console.log(objBase);
var objSub = new Sub();
objSub.showName();
// objSub.sayHello(); 
console.log(objSub);
  • 2.inspect
// util.inspect(object,[showHidden],[depth],[colors])是一個(gè)將任意對(duì)象轉(zhuǎn)換 為字符串的方法泻云,通常用于調(diào)試和錯(cuò)誤輸出。它至少接受一個(gè)參數(shù) object狐蜕,即要轉(zhuǎn)換的對(duì)象宠纯。
// showHidden 是一個(gè)可選參數(shù),如果值為 true层释,將會(huì)輸出更多隱藏信息婆瓜。
// depth 表示最大遞歸的層數(shù),如果對(duì)象很復(fù)雜贡羔,你可以指定層數(shù)以控制輸出信息的多 少廉白。如果不指定depth,默認(rèn)會(huì)遞歸2層乖寒,指定為 null 表示將不限遞歸層數(shù)完整遍歷對(duì)象猴蹂。 如果color 值為 true,輸出格式將會(huì)以ANSI 顏色編碼楣嘁,通常用于在終端顯示更漂亮 的效果磅轻。
// 特別要指出的是覆获,util.inspect 并不會(huì)簡(jiǎn)單地直接把對(duì)象轉(zhuǎn)換為字符串,即使該對(duì) 象定義了toString 方法也不會(huì)調(diào)用瓢省。
var util = require('util'); 
function Person() { 
    this.name = 'byvoid'; 
    this.toString = function() { 
        return this.name; 
    }; 
} 
var obj = new Person(); 
console.log(util.inspect(obj)); 
console.log(util.inspect(obj, true)); 
  • 3.isArray
var util = require('util');
console.log(util.isArray([]));
console.log(util.isArray(new Array));
console.log(util.isArray({}));
  • 4.isDate
var util = require('util');
console.log(util.isDate(new Date()));
console.log(util.isDate(Date()));
console.log(util.isDate({}));
  • 5.isError
var util = require('util');
console.log(util.isError(new Error()));
  // true
console.log(util.isError(new TypeError()));
  // true
console.log(util.isError({ name: 'Error', message: 'an error occurred' }));
  • 6.isRegExp
var util = require('util');
console.log(util.isRegExp(/some regexp/));
console.log(util.isRegExp(new RegExp('another regexp')));
console.log(util.isRegExp({}));

5.get 和post

  • 1.get
var http = require('http');
http.get({host:'www.byvoid.com'}, function(res){
    res.setEncoding('utf8');
    res.on('data',function(data){
        console.log(data);
    });
});
  • 2.post
var http = require('http');
var querystring = require('querystring');
var contents = querystring.stringify({
    name:'byvoid',
    email:'byvoid@byvoid.com',
    address:'zijing 2#, Tsinghua University',
});
var options = {
    host:'www.byvoid.com',
    path:'/application/node/post.php',
    method:'POST',
    headers:{
        'Content-Type':'application/x-www-form-urlencoded',
        'Content-Length':contents.length
    }
};
var req = http.request(options, function(res){
    res.setEncoding('utf8');
    res.on('data', function(data){
        console.log(data);
    });
});
req.write(contents);
req.end();

6.debug

// 進(jìn)入debug模式
node debug debug.js
//debug.js第五行設(shè)置斷點(diǎn)
sb('debug.js',5)
//清除斷點(diǎn)
cb('debug.js',5)
//繼續(xù)下一步
c
//進(jìn)入表達(dá)式模式
repl
//退出
command + c



_本站文章為 寶寶巴士 SD.Team 原創(chuàng), 轉(zhuǎn)載務(wù)必在明顯處注明:(作者官方網(wǎng)站: 寶寶巴士 ) _
_轉(zhuǎn)載自【寶寶巴士SuperDo團(tuán)隊(duì)】原文鏈接: http://www.reibang.com/p/2e26fac2aa79

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末痊班,一起剝皮案震驚了整個(gè)濱河市勤婚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涤伐,老刑警劉巖馒胆,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異凝果,居然都是意外死亡祝迂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門器净,熙熙樓的掌柜王于貴愁眉苦臉地迎上來型雳,“玉大人,你說我怎么就攤上這事山害【兰螅” “怎么了?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵浪慌,是天一觀的道長冤荆。 經(jīng)常有香客問我,道長权纤,這世上最難降的妖魔是什么钓简? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮汹想,結(jié)果婚禮上外邓,老公的妹妹穿的比我還像新娘。我一直安慰自己欧宜,他們只是感情好坐榆,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著冗茸,像睡著了一般席镀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上夏漱,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天豪诲,我揣著相機(jī)與錄音,去河邊找鬼挂绰。 笑死屎篱,一個(gè)胖子當(dāng)著我的面吹牛服赎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播交播,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼重虑,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了秦士?” 一聲冷哼從身側(cè)響起缺厉,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎隧土,沒想到半個(gè)月后提针,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡曹傀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年辐脖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片皆愉。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嗜价,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出幕庐,到底是詐尸還是另有隱情炭剪,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布翔脱,位于F島的核電站奴拦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏届吁。R本人自食惡果不足惜错妖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望疚沐。 院中可真熱鬧暂氯,春花似錦、人聲如沸亮蛔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽究流。三九已至辣吃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間芬探,已是汗流浹背神得。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留偷仿,地道東北人哩簿。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓宵蕉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親节榜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子羡玛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Node.js 常用工具 util 是一個(gè)Node.js 核心模塊,提供常用函數(shù)的集合宗苍,用于彌補(bǔ)核心JavaScr...
    FTOLsXD閱讀 530評(píng)論 0 2
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理缝左,服務(wù)發(fā)現(xiàn),斷路器浓若,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • 前言 提權(quán)何須收集各種EXP,一個(gè)MSF就夠了蛇数,本文為大家?guī)鞰SF綜合提權(quán)的一些姿勢(shì)挪钓。 文章內(nèi)容: 學(xué)習(xí)`Met...
    欽玄閱讀 9,071評(píng)論 1 9
  • Happy是樂享生活的享樂派狗狗,今年七歲耳舅,七年來一直還過的不錯(cuò)碌上!
    云聯(lián)珠播報(bào)閱讀 227評(píng)論 0 0