美文网首页
Nodejs 入门(三)

Nodejs 入门(三)

作者: babybus_superdo | 来源:发表于2016-05-16 19:39 被阅读25次

1、模块化加载

  • 第一种加载方式


    ![2.png](https://img.haomeiwen.com/i1744903/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、函数传递

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

相关文章

  • React Native的极简手册

    安装入门 安装入门可以参考:React Native官方文档。 NodeJS知识储备:参考《NodeJS入门》。(...

  • Node入门到入门(Windows)

    Node入门到入门(Windows) 安装NodeJS和NPM 1.安装NodeJS和NPM ​ 打开...

  • Nodejs 入门(三)

    1、模块化加载 第一种加载方式![2.png](http://upload-images.jianshu.io/u...

  • nodejs入门

    nodejs入门 花了点时间整理了下nodejs入门的图谱,如果将整个图谱的点都过了一次,相信你的nodejs知识...

  • nodejs入门总结三:nodejs模块

    四、nodejs模块 1.常见的模块规范:CommonJS: 最初被应用在nodejs,被称为nodejs的模块规...

  • NODE.JS

    入门 NODE安装 http://www.runoob.com/nodejs/nodejs-install-set...

  • nodejs 学习路线

    <1--nodejs入门> 1.准备-- js语言入门: -- JavaScript 教程 ...

  • 库&插件&框架&工具

    nodejs 入门 nodejs 入门教程,大家可以在 github 上提交错误2016 年最好用的表单验证库 S...

  • (三)NodeJs快速入门

    本学习笔记是根据《Node.js开发指南》一书进行学习。前面的几篇是根据《深入浅出Node.js》学习,但是学习到...

  • Node.js文档和教程

    七天学会NodeJS:https://nqdeng.github.io/7-days-nodejs/Node入门:...

网友评论

      本文标题:Nodejs 入门(三)

      本文链接:https://www.haomeiwen.com/subject/zyibrttx.html