【NodeJS】归纳篇(二)模块化

  • 系统模块:http、querystring、url…
  • 自定义模块
  • 包(模块)管理

系统模块

手册:http://nodejs.cn/api/

  • 断言:简单理解,即在应用程序中应该出现的情况,如果没有,那么这个程序就崩了。这用于帮助测试。
  • Buffer
  • crypto - 加密,如md5
  • DNS 解析域名 ,如 dns.getServers()找IP
  • Domain 已废弃
  • Events 模拟事件
  • Net 网络操作,如发送邮件
  • OS 提供与操作系统相关的操作
  • Path 处理文件路径,如返回目录名字,文件名,扩展名…
  • stream 流操作,如读取文件返回客户端,可以读一点发一点,这与readFile进行区分,readFile是整个文件读取
  • timer 定时器,与setInterval、setTimeout没有区别
  • util 工具性东西
  • zlib 压缩,如将用户上传的文件进行压缩

自定义模块

(1)写一个自己的模块:

  • 模块组成
  • npm
  • 发布模块
//明白3个词
//require : 请求:引入模块的
//module  : 模块: 批量输出
//exports : 对外一个一个输出

usemyMod.js

const mod1 = require('./myMod.js');
//.js可省略,注意自定义模块的路径,引入自定义模块加 ./

console.log(mod1.a);

myMod.js

对外输出东西,需要加给exports,用处控制哪些输出
注意,nodejs中没有全局变量,每个定义的变量只能在模块内使用,除非你exports这个变量。nodejs会自动将模块包裹在:

(function(){

})();
exports.a =12;

但是,对外输出一堆东西时呢?难道这样写吗?

exports.a = 12;
exports.b = 10;
exports.c = 5;

这样就不太好看了。。
这时候就可以用到module
module 能用于帮助批量输出东西。

module.exports = {a:12,b:10,c:5};

注意:

    module.exports == exports //true,一个东西

(2) npm:nodejs Package Manage Nodejs包管理器

  • 提供统一的下载途径,如在软件管家中下载软件
  • 自动下载依赖,就像平时使用某些软件时需要.net framework4.5这样的依赖

  • node_modules文件夹: 放置已下载的模块和自定义模块

npm install mysql 
npm unstall mysql

例如将自定义模块myMod.js放置到node_modules中,引用时就可以不用加 ./

const mod1 = require('myMod');

所以,require引入步骤是这样:

1、如果有”./”,从当前目录找
2、如果没有”./”,先从系统模块找,找不到,再从node_modules找,因为系统模块的优先级更高

故,约定一下,自定义模块都放在 node_modules文件夹中。

(3) 将自己的模块上传,给别人用

  • 先注册,有一个npm账号
  • 然后在命令行中,登陆你的账号 npm login 输入用户名和密码及邮箱
  • 登陆成功
  • npm init 初始化包信息,输入包名(name),版本(version),描述(description),及主文件(入口地址,默认index.js)等等,结束后会生成一个结构
  • 确认后,在目录下生成package.json
  • npm publish 发布

注意,如果当前版本改动之后需要再次上传至npm ,需要先修改package.json里面的version版本号,然后再进行npm publish

在其他项目中如果有引用到,只需进行一次npm update [moduleName更新的包名]

  • npm --force unpublish 强制删除当前package.json中的版本号,需谨慎!

此次,模块化就介绍到这里。

这里写图片描述

猜你喜欢

转载自blog.csdn.net/ImagineCode/article/details/81590538