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基础

    Node.js基础 ***Node.js 以 JavaScript 作为编程语言的,准确地说应该是 ECMAScr...

  • Node.js 实战_1 Node基础

    Node 基础 ?JavaScript 是编程语言,而 Node.js 是执行环境。 Node.js 是一个基于 ...

  • Node.js - 编程基础

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

  • 01node.js

    01、模块 02、关注学习 03、Node.js 回调函数Node.js 异步编程的直接体现就是回调。异步编程依托...

  • 异步编程的困惑

    《深入浅出 Node.js》阅读随笔 众所周知,Node.js 虽然也有部分同步编程的方式,但主要还是以后异步编程...

  • Node学习(3)--异步编程

    Node.js 回调函数 Node.js 异步编程的直接体现就是回调。 异步编程依托于回调来实现,但不能说使用了回...

  • node.js(六)

    Node.js 回调函数Node.js 异步编程的直接体现就是回调。异步编程依托于回调来实现,但不能说使用了回调后...

  • Nodejs学习第5天

    Node.js内置基础模块fs, Node.js 提供了基础的文件操作,并同时提供文件的同步和异步操作,如: .....

  • 2020-02-23

    Node.js回调函数 Node.js异步编程的直接体现就是回调 异步编程依托于回调来实现,但不能说使用了回调后程...

  • Node.js快刀篇

    Node.js概览 - Node.js大俗话,环境的安装和开发环境布署。 Node.js基础 - 事件机制和事件环...

网友评论

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

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