Node.js模块化开发


        Node.js规定一个JavaScript文件就是一个模块,默认情况下内部定义的变量与函数,外部无法获得。(可以使用exports对象进行成员导出,使用require导入其他模块)

案例:在b.js文件中使用a.js文件中的成员。

//a.js

let version = 1.0;

const sayHi = name => `您好,${name}`;

exports.version = version;

exports.sayHi = sayHi;
//b.js

let a = require('./a.js')

console.log(a.version);

console.log(a.sayHi("Miss"));

第二种导出方式

//a.js

let version = 1.0;

const sayHi = name => `您好,${name}`;

module.exports.version = version;

module.exports.sayHi = sayHi;

//exports是module.exports的别名,导出对象最终以module.exports为准。

当exports与module.exports指向的对象不一致时,导出对象最终以module.exports为准。

  1. 系统模块:(Node环境提供的API)

文件模块

//fs.js

const fs = require("fs")

//读取文件(读取文件时会按照当前目录的相对路径读取,一般使用绝对路径)
//fs.readFile('文件路径/文件名称', ['文件编码'], callback);

fs.readFile('../base.css', 'utf8', (err, doc) => {

    if (err == null) {
        console.log(doc);
    }
});

//写入文件
//fs.writeFile('文件路径/文件名称', '数据', callback)
fs.writeFile('../test.txt', 'miss', (err) => {

    if (err != null) {
        console.log(err);

    }
    console.log("写入成功");
});

路径模块

const path = require('path')

const fs = require("fs")
    //路径拼接(根据操作系统来拼接路径是反斜杠(windows)还是顺斜杠)
    //_dirname获取当前文件所在的绝对路径

let finialpath = path.join('node', 'a', 'b');

console.log(finialpath);

fs.readFile(path.join(__dirname, 'a.js'), 'utf8', (err, doc) => {

    if (err == null) {
        console.log(doc);
    }
});

第三方模块npmjs.com

下载 npm install formidable

卸载 npm uninstall formidable

本地安装:仅当前项目可以使用

全局安装:所有项目均可使用

nodemon(命令行工具,辅助项目开发,即文件发生改变后就重新执行该文件)

全局安装 npm install nodemon -g

运行nodemon path.js 失败

1》Windows+R;

2》输入PowerShell;

3》运行 "Set-ExecutionPolicy -Scope CurrentUser";

4》出现ExecutionPolicy: ,填入RemoteSigned;

5》填入Y;

nrm(切换npm下载工具地址)

全局下载 npm install nrm -g

查看地址 nrm ls 

使用地址 nrm use taobao

Gulp(前端构建工具)

文件压缩、语法装换(es6,es5,less)、公共文件抽离、浏览器自动刷新

npm install --production 运行环境,不下载开发依赖

npm install gulp  --save -dev 开发依赖

npm install gulp  库文件都是本地安装

在项目根目录建立glupfile.js文件

创建项目结构src、dist

在glupfile.js文件中编写任务

执行任务

3.node.js加载机制

完整路径,直接引入模块

require('./find.js')

模块后缀省略,先找同名js文件,再找同名js文件夹

require('./find')

若找到同名js文件夹,则找文件夹下的index.js文件



若没有index.js文件,则去找package.js文件中查找main选项的入口文件


若没有,则模块不存在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值