//核心模块就是Node.js标准API种提供的模块,如fs,http,net.vm等.官方提供,编译成二进制代码
//核心模块拥有最高的加载优先级

//文件模块则是存储为单独的文件(或文件夹)的模块,可能是javascript代码,
//json或者编译好的C++代码.文件模块的加载方法相对复杂,尤其是和npm结合使用时,
//在不显式指定文件模块扩展名的时候,Node.js会分别试图加上.js  .json .node拓展名,
//js是javascript代码, .json是json格式的文本, .node 是编译好的C++代码

//6.1.2 按模块加载模块

//文件模块的加载2种方式,一个按照路径加载,一种是查找node_modules文件夹.
//如果require参数以"/" 开头,那么就以绝对路径的方式查找模块名称,require('/home/module')
//将会按照优先级依次尝试加载/home/module.js  /home/module.json /home/module.node

//如果require参数以"../  或者./  开头.那么则以相对路径的方式来查找模块.

//6.1.3 通过查找node_modules目录加载模块

//如果require参数不以 /  ./  ../  开头.而该模块又不是核心模块,那么要通过查找node_modules
//加载模块,  我们使用npm获取的包通常就是以这种方式加载的

//当require遇到一个既不是核心模块.又不是以路径形式标示的模块名称时,会视图在当前目录下的
//node_modules目录种查找是否存在这个模块,如果没找到,则在当前模块种的上一层种的node_modules
//目录种继续查找.

//我们要在  home/byvoid/develop/foo.js 种使用 require('bar.js') 命令
///home/byvoid/develop/node_modules/bar.js
///home/byvoid/node_modules/bar.js
///home/node_modules/bar.js
///node_modules/bar.js

//6.1.4 加载缓存
//  Node.js会通过文件名缓存所有加载过的模块.
 //require('express')  和  require('./node_modules/express')加载2次,
// 解析 也是同一个文件

//6.1.5 加载顺序
//   使用 require(some-module)时的加载顺序
//1)如果some_module是一个核心模块,直接加载,结束
//2)如果some_module是以/  ./ ../ 开头,按路径加载some_module结束.
//3)假设当前目录为current_dir ,按路径加载current-dir/node_modules/some_module
//             如果加载成功,结束
//              如果失败 ,令current-dir 为父目录
//             重复这个过程, 直到遇到根目录,抛出异常,结束

//6.2 控制流
//6.2.1 循环的陷阱
//

//6.3 Node.js应用部署
//Node.js 一旦被用户触发了隐藏的bug.整个服务器就崩溃了.一定要考虑到故障恢复
//没有日志
//无法利用多核提高性能  由于是单线程,一个进程只能利用一个cpu.当大量请求,单线程就成为瓶颈(需要多线程0)
//独占端口  ,要通过反向代理实现基于域名的端口共享
//需要手动启动, 要制作一个自动启动服务器的脚本

Node.js模块 加载笔记的更多相关文章

  1. nodejs js模块加载

    本文地址:http://www.cnblogs.com/jasonxuli/p/4381747.html nodejs的非核心模块(core module)加载主要使用的就是module.js. 项目 ...

  2. sea.js模块加载工具

    seajs的使用 seajs是一个jS模块加载器,由淘宝前端架构师玉伯开发,它可以解决命名空间污染,文件依赖的问题.可以在一个js文件中引入另外一个js.require('a.js') 1.安装 np ...

  3. js模块化/js模块加载器/js模块打包器

    之前对这几个概念一直记得很模糊,也无法用自己的语言表达出来,今天看了大神的文章,尝试根据自己的理解总结一下,算是一篇读后感. 大神的文章:http://www.css88.com/archives/7 ...

  4. js模块加载之AMD和CMD

    当我写这篇文章的时候,sea.js已经逐渐退出历史的舞台,详细链接.不过任何新事物的出现都是对旧事物的取其精华,去其糟粕,所以了解一下以前模块的加载也是一件好事. js模块化的原因自不比多说,看看HU ...

  5. 实现简单的 JS 模块加载器

    实现简单的 JS 模块加载器 1. 背景介绍 按需加载是前端性能优化的一个重要手段,按需加载的本质是从远程服务器加载一段JS代码(这里主要讨论JS,CSS或者其他资源大同小异),该JS代码就是一个模块 ...

  6. 【 js 模块加载 】深入学习模块化加载(node.js 模块源码)

    一.模块规范 说到模块化加载,就不得先说一说模块规范.模块规范是用来约束每个模块,让其必须按照一定的格式编写.AMD,CMD,CommonJS 是目前最常用的三种模块化书写规范.  1.AMD(Asy ...

  7. 【 js 模块加载 】【源码学习】深入学习模块化加载(node.js 模块源码)

    文章提纲: 第一部分:介绍模块规范及之间区别 第二部分:以 node.js 实现模块化规范 源码,深入学习. 一.模块规范 说到模块化加载,就不得先说一说模块规范.模块规范是用来约束每个模块,让其必须 ...

  8. js模块加载框架 sea.js学习笔记

    seajs实现了JavaScript 的 模块开发及按模块加载.用来解决繁琐的js命名冲突,文件依赖等问题,其主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载. 官方文档:http:/ ...

  9. 第三课:sea.js模块加载原理

    模块加载,其实就是把js分成很多个模块,便于开发和维护.因此加载很多js模块的时候,需要动态的加载,以便提高用户体验. 在介绍模块加载库之前,先介绍一个方法. 动态加载js方法: function l ...

随机推荐

  1. codeforces 546B

    Description Colonel has n badges. He wants to give one badge to every of his n soldiers. Each badge ...

  2. Redis的安装及配置

    Redis安装及主从配置   一.何为Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表) ...

  3. 6th day

    时光荏苒,岁月如梭,2016年马上就要过去了,今天PHP的核心知识基本上已经讲完,后面就要开始学习数据库,做项目之类的,心情还真是有点小激动.总之,新年新气象,祝愿各位在新的一年里能够心想事成,好好学 ...

  4. OpenCV LDA(Linnear Discriminant analysis)类的使用---OpenCV LDA演示样例

    1.OpenCV中LDA类的声明 //contrib.hpp class CV_EXPORTS LDA { public: // Initializes a LDA with num_componen ...

  5. checkbox 删除

    先创建del.php文件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ...

  6. HDU 3037(Lucas定理)

    对于很大的组合数不能用C(n, m) = C(n - 1, m) + C(n-1, m -1)来求,这里就用到Lucas定理. 模板题: hdu3037:模板如下: #include <cstd ...

  7. 转载:C#之接口简介

    原文地址 http://www.cnblogs.com/michaelxu/archive/2007/03/29/692021.html 感谢博主分享! 什么是接口?其实,接口简单理解就是一种约定,使 ...

  8. HTML5之canvas

    canvas的创建,canvas图片的绘制及图片的封装,矩形,矩形边框,圆,线的绘制. JavaScript代码如下:main.js /** * Created by zengkm on 15-9-1 ...

  9. Cacti添加threshold、monitor和setting

    Cacti版本:Version 0.8.8b 一.插件介绍: monitor:通过简单明了的图标提供服务器的运行状态 settings:给不同的插件提供一些共用的信息,如邮件信息,dns信息thold ...

  10. oracle解析xml完成版第二次修改

    其实XML字符串就好像是ORACLE中的外部表,因此Oracle对 解析XML字符串一些规则要求非常严格.XML字符串提供的数据就是一张表,所以Oracle必须提供跟 xml数据一致的列头 示例一 S ...