node.js入门学习(四)--Demo模块化改造

1、node.js中模块的分类

  1)node.js内置模块(核心,原生)

    所有内置模块在安装node.js时就已经编译成二进制文件,可以直接加载运行(速度较快),部分内置模块,在node.exe这个进程启动时就已经默认加载了,可以直接使用。

  2)文件模块

    require(./common.js); // 去当前js文件的路径下找commom.js文件并导入执行。如果导入时没有指定文件后缀require(./commom),那么就按照commom.js,common.json,commom.node(c/c++编写)去找对应的文件。没有找到对应的文件,就去找common文件夹,如果找到了,看common文件夹里面有没有package.json文件,package.json文件有没有定义入口(main)。

  3)自定义模块(第三方模块)比如mime

    首先会在项目根目录下的node_modules文件夹里面找对应模块,没有找到去上一级目录找,直到盘符目录。

2、require加载模块注意

  1)所有模块第一次加载完毕后都会有缓存,后面加载就直接读取缓存,避免了二次开销。因为有缓存,所以模块加载只会执行一次。

  2)每次加载优先从缓存中加载,没有才按照node.js加载模块的规则去查找

  3)核心模块在node.js源码编译的时候,都已经编译为二进制执行文件,所以加载速度较快(核心模块的优先级仅次于缓存)

  4)核心模块保存在lib目录下

  5)试图加载一个和核心模块同名的自定义模块是不会成功的,只能使用路径的方式加载。

  6)核心模块只能通过模块名称来加载,不可以通过路径加载

  7)require(./common.js)中"./"相对路径是相对当前模块(或当前js文件)

  8)建议加载文件模块时,文件后缀不要省略

3、CommonJS规范

  CommonJS规范是为js语言制定的一种模块规范、编程API规范。

  node.js遵循了CommonJS规范

4、module.exports介绍(两个模块进行通信,如何使用加载的模块)

  需求:如何在index.js加载a.js模块,并且使用a.js模块中的数据和方法

  第一步:首先新建文件夹node-module-demo

  第二步:在node-module-demo目录新建index.js文件

  第三步:npm init -y

  第四步:a.js和index.js

  a.js

var a = {
    name: ‘张三‘,
    id: 20,
    add: function(x, y) {
        return x + y;
    }
};
module.exports = a;

  index.js

var a = require(‘./a.js‘);
var result = a.add(10, 20);
console.log(result); // 30
console.log(a.name); // 张三
console.log(a.id); // 20

  

  事实上,如果a.js不指定module.exports,默认返回一个对象。

// a.js代码:
module.exports.name = "李四";
module.exports.id = 10;
module.exports.sayHi = function () {
    console.log(‘hello您好‘);
};

// index.js代码:
var a = require(‘./a.js‘);
a.sayHi();
console.log(a.name);
console.log(a.id);

5、exports和module.exports的区别
  1)exprots和module.exports指向的是同一个对象
  2) 最终require()函数返回的是module.exports中的数据

6、将上一篇博客的Demo进行模块化改造
  1)模块化:便于多人合作、便于后期维护
  2)模块化思路:将Demo分成以下模块
          - 服务模块:负责启动服务
          - 扩展模块:扩展req和res对象
          - 路由模块:负责路由判断
          - 业务模块:负责处理具体路由的业务
          - 数据操作模块:负责进行数据库操作
          - 配置模块:保存配置信息

  

原文地址:https://www.cnblogs.com/xy-ouyang/p/11145470.html

时间: 2024-10-01 05:29:09

node.js入门学习(四)--Demo模块化改造的相关文章

node.js入门学习(四)--Demo

需求:图书的增删改查,图书数据保存在data.json文件中. 1.Demo结构: 2.首先下载安装node.js,配置环境变量:参考博客 3.项目初始化 1)创建项目根目录node-hello,进入到根目录node-hello,右键/在此处打开PowerShell窗口. 2)创建app.js文件. 3)在控制台输入命令:npm init -y,会自动创建package.json文件. 4)在控制台输入命令:npm install mime,会自动创建node_modules文件夹,并下载mim

Node.js入门学习笔记(三)

基于事件驱动的回调 这个问题不好回答,不过这是Node.js原生的工作方式.它是事件驱动的,这也是它为什么这么快的原因.你可以花一点时间阅读一下Felix Geisendörfer的大作 Understanding node.js 可了解一些背景知识. 当我们使用http.createServer方法的时候,我们当然不只是想要一个侦听某个端口的服务器,我们还想要这在服务器收到一个HTTP请求的时候做点什么. 问题是,这是异步的,请求任何时候都可能到达,但是我们的服务器却跑在一个单进程中. 写PH

node.js入门学习

一.node.js介绍 1.1.node.js是什么 官网首页总结:Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时. 1)node.js是一个开发平台,就像java开发平台..net开发平台.PHP开发平台.Apple开发平台一样. - 什么是开发平台:有对应的编程语言.有语言运行时.有能实现特定功能的API(SDK Software Development Kit) 2)node.js平台使用的编程语言是JavaScript. 3)node.js平台是

node.js入门学习(四)--express

1.官网:http://expressjs.com/ 中文:http://www.expressjs.com.cn/ 2.HelloWorld 1)mkdir node-express-demo 2)cd .\node-express-demo\ 3)新建app.js文件 4)npm init -y  : 会以app.js为入口文件,创建package.json 5)npm install express --save  : 本地安装express并将其保存到依赖列表中,会新建package-l

node.js入门学习(二)

一.构建http服务程序-根据不同请求做出不同响应 // 加载http模块 var http = require("http"); // 创建一个http服务对象 http.createServer(function(req, res) { if(req.url === '/') { res.end("hello index"); } else if(req.url === '/list') { res.end("hello list"); }

Node.js入门学习笔记(二)

函数传递 举例来说,你可以这样做: function say(word) {     console.log(word); } function execute(someFunction, value) {    someFunction(value); } execute(say, "Hello"); 请仔细阅读这段代码!在这里,我们把say函数作为execute函数的第一个变量进行了传递.这里返回的不是say的返回值,而是say本身! 这样一来,say就变成了execute中的本地

Node.js知识点学习

Node.js知识点学习 一.基本概念 Node.js,或者 Node,是一个可以让 JavaScript 运行在服务器端的平台.可以说,Node.js开创了javascript模块化开发的先河,早期的javascript需求都很简单,基本都是写成函数的,然后是面向过程的写法,后来慢慢的引入面向对象开发思想,再后来就慢慢写成 类.最后node.js的出现才开始有了js模块化开发的概念,这使得臃肿的js代码免去了命名冲突等一系列开发难题. Node最大的特点就是采用了异步式I/O与事件驱动的架构设

Node.js入门笔记

第一步自然是安装了,我是用Webstorm这个ide,安装分2步: 1.安装nodejs,下载Windows下的安装版本,注意是以msi为扩展名的,然后下一步,没啥好说的,下载地址如下: 32位的msi:http://nodejs.org/dist/latest/ 64位的msi:http://nodejs.org/dist/latest/ 2.安装WebStorm8.0.3,好像会自动找到nodejs的安装路径,不需要配置啥东东: 装好WebStorm,启动它,然后创建项目(New Proje

Node.js的学习资源、教程和工具

这篇文章编译整理自Stack Overflow的一个如何开始学习Node.js的Wiki帖,这份资源列表在SO上面浏览接近60万次,数千个收藏和顶.特意整理发布到这里,其中添加了部分中文参考资料. 学习指南和教程 NodeSchool.io 交互式课程 Node的艺术 (Node简介) Hello World Hello World Web Server Node.js 指南 使用Node.js, express和MongoDB创建一个博客 Node+MongoDB 100分钟建站攻略 Proj