Node.js学习笔记-模块化开发
Posted Kira~~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js学习笔记-模块化开发相关的知识,希望对你有一定的参考价值。
javascript开发过程中存在文件依赖和命名冲突问题,因此要采用模块化开发的方式。
- 软件当中的模块化开发
每个JavaScript文件就是一个模块,模块内部的变量无法在外部进行访问。有两种方式可以实现访问。
- 文件b中访问a中的变量和方法需要用exports将a中的变量和方法导出,并在b中用require方式引入
// a.js
let version = 1.0
const sayHi = name => `您好,$name`;
exports.version = version
exports.sayHi = sayHi;
const add = (n1,n2) => n1+n2
exports.add = add
//b.js
let a = require('./a.js');
console.log(a.version)
console.log(a.sayHi('World'))
console.log(a.add(2,3))
输出结果:
- 使用module.exports的方式导出
//c.js
const greeting = name => `hello $name`
module.exports.greeting = greeting;
//d.js
const a = require('./c.js')
console.log(a.greeting('张三'))
当module.exports和exports只想不同的内存地址(对象)时,当exports和module.exports不冲突可以全部导出,而当两者有冲突时要以module.exports导出的模块为准,忽略exports中的值。
- 系统模块
fs读取文件模块
const fs = require('fs');
fs.readFile('./a.js','utf8',(err,doc) =>
console.log(err);
console.log(doc);
)
文件的读取需要时间,是异步操作,因此需要在回调函数中打印结果。
JavaScript回调函数第一个参数都是err,存储错误信息
fs写入文件
const fs = require('fs')
fs.writeFile('./demo.txt','即将要写入的内容',err =>
if (err != null)
console.log(err);
return;
console.log('文件写入成功')
)
path路径操作
可根据不同的操作系统对文件路径进行拼接
windows上使用/或\\都可以
而linux上使用/
const path = require('path');
let finialPath = path.join('public','uploads','avatar')
console.log(finialPath)
- 第三方模块
下载模块:npm install 模块名称
卸载模块: npm uninstall package 模块名称
nodemon
可以监控保存文件的动作
npm install nodemon -g 全局模式
nrm
下载地址切换工具
npm install nrm -g
查看所有下载地址 nrm ls
切换下载地址 nrm use
以上是关于Node.js学习笔记-模块化开发的主要内容,如果未能解决你的问题,请参考以下文章