Node.js学习笔记-模块化开发

Posted Kira~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js学习笔记-模块化开发相关的知识,希望对你有一定的参考价值。

javascript开发过程中存在文件依赖命名冲突问题,因此要采用模块化开发的方式。

  1. 软件当中的模块化开发

每个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中的值。

  1. 系统模块
    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)
  1. 第三方模块
    下载模块:npm install 模块名称
    卸载模块: npm uninstall package 模块名称

nodemon
可以监控保存文件的动作
npm install nodemon -g 全局模式
nrm
下载地址切换工具
npm install nrm -g
查看所有下载地址 nrm ls
切换下载地址 nrm use

以上是关于Node.js学习笔记-模块化开发的主要内容,如果未能解决你的问题,请参考以下文章

系列文章--Node.js学习笔记系列

Nodejs学习笔记----- 模块系统和函数

「Node学习笔记」Node.js的模块实现及编译

node.js学习笔记——创建第一个应用

「Node学习笔记」浅谈Node.js读写xlsx文件

Node.js学习笔记六搜索和安装Node封装模块