使用 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.js
function 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进行调试。