鲜荣彬
Herry

1.

  node -v 查看版本

  node -e --js代码

  node --进入编辑模式

  Ctrl+C 退出编译模式

var http=require('http')
http.createServer(function(req,res){
    res.writeHead(200,{'Content-Type':'text/html'});
    res.write('<h1>Hello world</h1>');
    res.end('<p>china</p>');
}).listen(3000);

   将文件保存为 app.js,进入使用命令行进入app.js 所在没得目录,启动服务器。

  在浏览器中输入 http://localhost:3000/,即可看到页面内容。

  

      npm -install -supervisor -g //全局模式

  2.全局对象与全局变量

    所有属性都可以在程序中的任何地方访问,即全局变量。

    Node.js的全局对象是global,Js中,通常window是全局对象。

    global最根本的作用是作为全局变量的宿主。

    满足以下条件称为全局变量。

    1.在最外层定义的变量。

    2.全局对象的属性。

    3.隐式定义的变量(未定义直接副职的变量)

    在Node.js中不可能在最外层定义变量,因为所有用户代码都是属于当前模块的,而模块本身不是最外层上下文。

    因此,不提议全局变量。

  3.process 用于描述当前Node.j进程状态的对象。

    (1) process.argv 命令行参数数组

      我们在G\nt\argv.js,

      argv.js----- console.log(process.argv)

        运行,输入 G:\nt>node argv.js xianrongbin liudehua

           输出: [ 'node', 'G:\\nt\\argv.js', 'xianrongbin', 'liudehua' ]

     (2)process.stdout 标准输出流

       console.log() 底层是用process.stdout.write()实现。 

       (3)prcess.stdin是标准输入流,初始时它是被暂停的

process.stdin.resume();
process.stdin.on('data',function(data){
    process.stdout.write('read from console========   '+data.toString());
})

      运行:如果我们输入: this is node demo

          则输出  rread from console======  tis is node demo

     (4)process.nextTick(callback)的功能是为事件循环设置一项任务。

    Node.js会在下次事件循环相应时调用callback。Node.j适合IO密集型应用,而不是计算密集型应用。

    如下:

function doSomething(args,callback){
        somethingComputeBefore(args);
        callback();
}

doSomething('12345',function onEnd(){
        compute();
});

  假如somethingComputeBefore()与compute()是两个较为耗时的函数,调用

  doSomething()先调用 somethingComputeBefore(),然后立即调用回调函数,在onEnd()中又会执行compute(); 

  可以改下

function doSomething(args,callback){
    somethingBefor(args);
    process.nextTick(callback);
}

  使用process.nextTick()后,改写后的程序会把上面耗时的操作拆分为两个事件,减少每个事件的执行时间。

 

 

 

 

     

     

posted on 2015-08-24 21:23  Herry彬  阅读(337)  评论(0编辑  收藏  举报