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、函数传递
function execute(someFuction, value){
someFuction(value);
}
execute(function(word){console.log(word)}, "yangqingshan");
3、global
// 输出全局变量 __filename 当前脚本的文件路径
console.log( __filename );
// 输出全局变量 __dirname 当前脚本所在的文件夹路径
console.log( __dirname );
setTimeout(cb, ms)
// 全局函数在指定的毫秒数后执行指定函数 返回一个代表定时器的句柄值
function printHello(){
console.log("Hello , World!");
}
// 两秒后执行以上函数
setTimeout(printHello, 2000);
clearTimeout(t)
function printHello(){
console.log("Hello , World!");
}
// 两秒后执行以上函数
var t = setTimeout(printHello, 2000);
// 清楚定时器
clearTimeout(t);
function printHello(){
console.log("Hello, World!");
}
var t = setInterval(printHello, 2000);
setTimeout(function(){clearInterval(t);}, 6000);
// console:标准控制台输出
// log, info, error, warn, dir, time
console.log('Hello world');
console.log('byvoid%diovyb');
console.log('byvoid%diovyb', 1991);
console.trace();
console.info("程序开始执行:");
var counter = 10;
console.log("计数: %d", counter);
console.time("获取数据");
// //
// // 执行一些代码
// //
console.timeEnd('获取数据');
console.info("程序执行完毕。")
// process
// 是一个全局变量, 即global对象的属性
// 它用于描述当前Node.js进程状态的对象,提供了一个与操作系统的简单接口.通常在你写本地命令行程序的时候,
// 少不了要和它打交道.
// exit beforeExit uncaughtException Signal
process.on('exit', function(code){
// 以下代码永远不会执行
setTimeout(function(){
console.log("该代码不会执行");
}, 0 );
console.log('退出码为:', code);
});
console.log("程序执行结束");
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])是一个将任意对象转换 为字符串的方法,通常用于调试和错误输出。它至少接受一个参数 object,即要转换的对象。
// showHidden 是一个可选参数,如果值为 true,将会输出更多隐藏信息。
// depth 表示最大递归的层数,如果对象很复杂,你可以指定层数以控制输出信息的多 少。如果不指定depth,默认会递归2层,指定为 null 表示将不限递归层数完整遍历对象。 如果color 值为 true,输出格式将会以ANSI 颜色编码,通常用于在终端显示更漂亮 的效果。
// 特别要指出的是,util.inspect 并不会简单地直接把对象转换为字符串,即使该对 象定义了toString 方法也不会调用。
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
// 进入debug模式
node debug debug.js
//debug.js第五行设置断点
sb('debug.js',5)
//清除断点
cb('debug.js',5)
//继续下一步
c
//进入表达式模式
repl
//退出
command + c
_本站文章为 宝宝巴士 SD.Team 原创, 转载务必在明显处注明:(作者官方网站: 宝宝巴士 ) _
_转载自【宝宝巴士SuperDo团队】原文链接: http://www.jianshu.com/p/2e26fac2aa79