Node.js模块、路径以及第三方模块解释与应用

模块内部可以使用exporys对象进行成员导出,使用require导入其他模块

//a.js
//在模块内部定义变量
let version = 1.0;
//在模块内部定义方法
// ${name}拼接字符串
const sayHi = name => `你好,${name}`;
//向模块外部导出数据
exporst.version = version;
exporst.sayHi = sayHi;

模块导入
//b.js
//在b.js模块中导入模块a
let a = require(’./b.js’);
//输出b模块中的version变量
console.log(a.version);
//调用b模块中的sayHi方法并输出其返回值
console.log(a.sayHi(‘小猪佩奇’));

案例
a.js
const add = (n1, n2) => n1 + n2
exports.add = add


b.js
const a = require('./03.module-a.js');
console.log(a.add(10, 20));

模块成员的导出另一种方法
module.exporst.version=version;
module.exports.sayHi=sayHi;
exports是module.exports的别名(地址引用关系),导出对象最终以module.exports为准,如果他们的地址发生变化最终以module.exports为准

例子:
a.js
const greeting = name => `hello${name}`;

module.exports.greeting = greeting;

b.js
const a = require('./04.module.exports');
console.log(a.greeting('zhangsan'));


例子
a.js
const greeting = name => `hello${name}`;

// module.exports.greeting = greeting;
const x = 100;
exports.x = x;
module.exports.greeting = greeting;
// 当exporsts对象和module.exports对象指向的不是同一个对象时候以module.exports对象为准
module.exports = {
    name: 'zhangsan'
}
// 当exports和module.exports指向的对象不同时也是以module.exports为准
exports = {
    age: 20
}


b.js
const a = require('./04.module.exports');
// console.log(a.greeting('zhangsan'));
console.log(a);//'zhangsan'

什么是系统模块
Node运行环境提供的API,因为这些API都是以模块方式进行开发的,所以又称Node运行环境提供的API为系统模块

系统模块fs文件的操作
f:file文件,s:system系统,文件操作系统
const fs=requirt(‘fs’);

读取文件内容
fs.reaFile(‘文件路径/文件名称’[,‘文件编码’],callback)
1、通过模块的名字fs对模块进行引用
const fs = require(‘fs’);

//2、通过模块内部的readFile读取文件内容
fs.readFile('./01-helloworld.js', 'utf8', (err, doc) => {
    //如果文件读取出错err  是一个对象  包含错误信息
    //如果文件读取正确err是null
    //doc是文件读取的结果
    console.log(err);
    console.log(doc);
})

写入文件内容
fs.writeFile(‘文件路径/文件名称’,‘数据’,callback);

// 导入模块fs
const fs = require('fs');

fs.writeFile('./demo.text', '即将写入的内容', err => {
    if (err != null) {
        console.log(err);
        return;
    }
    console.log('文件写入成功');
}) 

path路径拼接语法
path.join(‘路径’,‘路径’,……)
生成路径piblic/upioads/avatar
const path = require(‘path’);
const finalPath = path.join(‘public’, ‘uploads’, ‘avatar’);
console.log(finalPath);//public\uploads\avatar

相对路径与绝对路径_ _dirname
大多数情况下使用绝对路径,因为相对路径有时候相对的命令行工具的当前工作目 录
在读取文件或者设置文件路径时都会选择绝对路径
使用__dirname获取当前文件所在的绝对路径

const fs = require('fs');
const path = require('path');

console.log(__dirname); //C:\Users\123\Desktop\html\Node.js\day01
console.log(path.join(__dirname, '01-helloworld.js')); //C:\Users\123\Desktop\html\Node.js\day01\01-helloworld.js



fs.readFile(path.join(__dirname, '01-helloworld.js'), 'utf8', (err, doc) => {
    console.log(err);
    console.log(doc);
})

node第三方模块 npm
https://www.npmjs.com/ 第三方模块的存储和分发仓库

下载:npm install模块名称
	 npm install formidable 
卸载: npm unintall package 模块名字

全局安装与本地安装
	命令行工具:全局安装
	库文件:本地安装
	
npm命令    install安装   nodemon第三方模块的名字  -g全局安装

第三方模块nodemon
使用步骤
1、使用npm install nodemon -g下载
2、在命令行工具中用nodemon命令代替node命令执行文件
在命令窗口按ctrl+c终止操作

第三方模块nrm切换下载地址(提升下载速度)
nrm下载地址切换工具
npm默认的下载地址在国外,国内下载慢

使用步骤
	1、使用npm install nrm -g下载
	2、查询可用下载地址列表nrm ls
	3、切换npm下载地址nrm use下载地址名称

猜你喜欢

转载自blog.csdn.net/weixin_46002223/article/details/108424587