85. 文件模块

文件模块 fs Node.js 全解

本节课目标: 创建一个基于文件的todo工具

需求

功能

可以列出所有的 todo 可以新增 todo 可以编辑 todo 可以删除todo 可以标记todo为已完成/未完成

命令

t
t add 任务名
t clear

CRM 学习法

Copy 抄

Run运行

Modify改

这个项目会用到下面几个库

"commander"
"inquirer"
"winston"

devDependencies
"jest"

初始化项目

init -y会创建一个package.json的文件

这里把版本号改成0.0.1

创建一个index.js的文件,里面输入

如何运行这行代码呢?

在node.js中,只需要运行node index即可。

安装commander.js

https://github.com/tj/commander.js

把index.js的内容替换成

.option

运行node index

运行node index -h, 就会看到下面的显示。

因此,.option就是用来声明有哪些选项的。-h是默认的。

.command

以下是输出

add

a+

Open file for reading and appending. The file is created if it does not exist.

命令行

查看.todo文件里有什么

删除文件

优化代码

node cli会打印出

安装inquirer

https://devdocs.io/node/fs#fsreadfilepath-options-callback

https://devdocs.io/node/fs#file-system-flags

https://devdocs.io/node/fs#fswritefilefile-data-options-callback

这节课很多优化代码的技巧可以学一下

技巧:把一堆代码取一个名字,然后单独拆分成函数写

项目代码没敲完,特别是最后优化那一部分。

作业:

请按照视频制作一个 node-todo 项目,把源代码上传到 GitHub,并给出运行成功的截图~

回顾

如何使用 return new Promise

如何使用 async await

什么时候 reject(error)什么时候不 reject(error)

如何使用 fs.readFile/ fs.writeFile

如何使用 logger

如何使用 commander

如何使用 module.exports

如何引入jest 测试

如何 mock fs

如何使用WebStorm 调试

如何使用--inspect-brk 调试

发布到 npm

修改 package.json

运行命令

注意要把淘宝源切换为原始源

如果提示出错,请自己把出错理解一下

npm publish

常见错误

你发布的包名跟线上包名重复,不允许发布,请改名

你用户名密码不匹配,请重置密码

你没有改版本号,不能重复发布同一版,请升级版本

其他问题自行Google

总结

不要看书学习

看了忘 没有留下任何痕迹 做笔记稍微好点)

动手学习

照着我的代码敲 (不允许复制粘贴)

学习调试方法

发现bug,学会自己debug

持续改进自己的作品 即使课堂上没讲)

下节课学习另一个模块

再见

最后更新于

这有帮助吗?