1义黎、模塊化加載
-
第一種加載方式
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