当前位置: 首页>后端>正文

nodejs 使用 es6模块化 node.js模块

关于Nodejs中的模块

概念

基于Nodejs这个平台将Web开发常用的一些功能进行封装,称为模块。

1.系统模块

3、path模块 路径处理

2. require加载模块路径

相对路径: 如 ./ 或 ../

绝对路径: 如 E:\nodejs\02day\4-code\23cart 或 / (类unix系统)

直接写模块名会被当成系统模块或加载node_modules目录的模块。

2.文件模块( 模块也被称为包 )

npm 是第三方模块管理管理工具

是全局安装的 在任何地方打开命令行 就可以使用 npm config list 可以查看配置信息

使用npm可以安装、卸载、发布模块。

1、安装

  a) 本地安装,需要网络并且将下载的模块放到执行安装命令的目录,并且会自动创建node_modules 存放下载的模块,如果上一级目录已经存在 node_modules目录,则会安装至上一级目录.
      npm install 模块名称
  b) 全局安装,安装到默认c盘(C:\Users\(自己的用户名)\AppData\Roaming\npm\node_modules)
      npm install 模块名称 -g
  c) 关于本地安装还是全局安装 要根据使用方式     (模块文档 https//www.npmjs.com )
  如果是全局安装   一般都是提供一个命令行进行使用 如 lessc npm  
  如果是本地安装     一般都是使用 require()方法来使用
  d) 默认下地址 https//registry.npmjs.org
  通过 npm config set registry https://registry.npm.taobao.org
  从淘宝镜像库 下载 速度回快   5到10分钟 更新一次镜像库

2、卸载

  a) 本地卸载
    npm uninstall 模块名称
  b) 全局卸载
    npm uninstall 模块名称 -g
    卸载也可以直接删除文件

3、发布模块

  a) 注册用户,注册npm账号

  b) 编写模块

  c) 发布模块

  在模块目录执行 npm login,根据提示输入用户名、密码、邮箱进行登录,然后执行npm publish完成发布。

3.自己封装模块

  1. 建一个文件夹 即为模块名称
  2. 里面的文件
    add.js      //功能块
    index.js        //入口文件
    modify.js       //另一个功能
    package.js   //配置文件 此文件不用创建 可以用 npm init -y(一路yes)
    package文件内容
{
  "name": "itcast40", //模块名 默认为文件夹名字
  "version": "1.0.0", //版本号
  "description": "", //描述
  "main": "index.js", //配置模块的入口
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "", // 作者
  "license": "ISC"  
}
  1. module.exports 对象 实现向模块外部,返回数据的方式
    Nodejs 为了简化模块内部方法或属性的公开,还提了exports 也可以实现与 module.exports 相类似(不是相同)的作用但是 不能传出对象
    例子:
console.log('我是一个文件');
let name = '我这个属性想在其他文件输出';

function sayHi() {
    console.log('我这个方法想在其他文件输出');
}
    module.exports.sayHi = sayHi;
    module.exports.abc = name;//可以使用
    
    
    exports.sayHi = sayHi;
    exports.abc = name;//可以使用

    module.exports = {
        sayHi: sayHi,
        abc: name
    }//可以使用
    
    exports = {
        sayHi: sayHi,
        abc: name
    }//不可以使用  
    因为 Node 只是做了如下操作 exports = module.exports 在使过程,exports 不能直接被赋值一个对新对象 因为这样会断开与 module.exports 的联系
    那么也不能实现向外部模块公开内部数据的功能了。




https://www.xamrdz.com/backend/3xv1922027.html

相关文章: