Node.js - 编程基础

作者: Standstill | 来源:发表于2017-06-19 12:41 被阅读0次

    命名空间

    首先我们需要考虑的是组织和重用代码,那么这就涉及到命名空间(namespace)。
    Node.js 针对命名空间处理如下,

    模块输出:module.exports 或者 exports,(exports只是对module.exports的一个全局引用)
    模块引入:require,( I/O 同步操作, 在程序中I/O密集的地方尽量不要用require)
    

    Node.js对于模块的处理如下:

    1. 是否调用的是核心模块https://nodejs.org/api/
    2. 是否存在在当前node_modules目录下面
    3. 是否存在在环境变量NODE_PATH下面
    • 模块规则
      如require('my_module') ,则需要模块在以上位置中,且定义的名称为my_module.js 或者 my_module目录中的index.js文件,(默认的index文件名可以通过package.json的main参数重定义)

    异步编程

    再有就是Node.js比较重要的一个特性,就是异步编程。
    Node.js中有两种响应逻辑管理方式:

    • 回调:用来定义一次性响应的逻辑
    • 事件监听器:本质上也是一个回调,不同的是,它跟一个概念实体(事件)相关联

    回调:

    var fs = require('fs');
    
    fs.readFile('test.dat' , function(err , data){
      console.log('这行代码会在读取文件完成之后进行');
    })
    console.log('这行代码会在读取文件完成之前进行');
    

    事件监听器:

    使用new EventEmitter()来实现事件功能
    包括两个方面
    事件监听器: eventemitter.on('action' ,function(){}) // 如果只希望响应一次,on -> once
    事件发射器: eventemitter.emit('action')
    
    

    流程控制

    异步跟同步其实也就是流程中的串行跟并行

    • 异步 - 并行
    • 同步 - 串行

    比较流行的流程控制的工具:Nimble,Step,Seq
    串行可以通过Nimble工具实现:

    nimble.series([function(),function(),...])
    
    参考自:《Node.js实战》 - Mike Cantlon 等
    上一篇 下一篇
    Node.js 第一步 Node.js Web相关

    相关文章

      网友评论

        本文标题:Node.js - 编程基础

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