使用 fs.writeFile , fs.readFile
fs.readFile(异步)
var fs = require("fs");// 异步读取fs.readFile('input.txt', function (err, data) {if (err) {return console.error(err);}console.log("异步读取: " + data.toString());});
同步 fs.readFileSync()
fs.writeFile
fs.writeFile(file, data[, options], callback)
参数
参数使用说明如下:
- file - 文件名或文件描述符。
- data - 要写入文件的数据,可以是 String(字符串) 或 Buffer(缓冲) 对象。
- options - 该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 , flag 为 ‘w’
- callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回。
注意:writeFile 直接打开文件默认是 w 模式,所以如果文件存在,该方法写入的内容会覆盖旧的文件内容。
var fs = require("fs");console.log("准备写入文件");fs.writeFile('input.txt', '我是通 过fs.writeFile 写入文件的内容', function(err) {if (err) {return console.error(err);}console.log("数据写入成功!");
使用 commander 制作 todo
安装插件
yarn add commander
使用 Node.js制作一个好玩的todo应用。

效果如上图所示,可以添加任务,删除任务,更新任务,和对任务设置状态。源码链接
项目里面使用到了 fs.readFile和 fs.writeFile,文件系统API。
还使用到了 async 和 await 在MDN上有相关文档。
可以这么总结以下 async 和 await 干了什么
async 会将其后的函数的返回值封装成一个 Promise 对象,而 await 会等待这个 Promise 完成
function getSomething() {return "something";}async function testAsync() {return Promise.resolve("hello async");}async function test() {const v1 = await getSomething();const v2 = await testAsync();console.log(v1, v2);}test();
单元测试
首先要安装测试工具,采用jest
yarn add --dev jest
官网有个最简单的例子
// sum.jsfunction sum(a, b) {return a + b;}module.exports = sum;
我么要测试这段代码是否真正确,先创建一个 sum.test.js文件。注意测试文件必须是.test.js结尾的文件。
const sum = require('./sum');test('adds 1 + 2 to equal 3', () => {expect(sum(1, 2)).toBe(3);});
可以在package.json里面添加配置,使得在命令行中快捷运行
{"scripts": {"test": "jest"}}
最后,运行 yarn test 或 npm run test ,Jest将打印下面这个消息:
PASS ./sum.test.js✓ adds 1 + 2 to equal 3 (5ms)
你刚刚成功地写了第一个Jest测试 !
在webstorm里面如果要添加全局代码检查和提醒,可以在Settings | Languages & Frameworks | JavaScript | Libraries 文件下面

找到 Download 下载 jest 依赖这样就可以检查代码。
如果想测试整个代码文件
可以想创建一个 __test__文件夹,在里面创建测试文件,单元测试一般以.spec.js结尾

单元测试不能和外界打交道,只能自己操作自己。
不过我们可以投机取巧的设置一个假的,官网正好也有这个说明Mocking Node modules
jest.mock('fs')
手动的创建一个__mocks__文件夹在里面创建一个 fs.js.
然后在里面书写mock的 fs
调试工具
webstorm调试
在顶部模块的run 里面的 Edit Configurations

然后在里面设置

在javaScript file 定位需要测试的文件。

点击右边行可以添加断点
浏览器、node调试
node --inspect-brk 执行文件 执行任务
然后在浏览器打开控制台,打开node进行调试。

