我有一个必须找到文件(.zip)并将其返回的函数,我可以将其用作另一个函数的参数。另外,我在业力/茉莉花中进行了测试,我在其中午餐了我的搜索功能,当我这样做时,它抛出了一个错误,'fs.readFile is not a function'
测试代码:
const fs = require('fs');
const JSZip = require("jszip");
const searchfile = () => {
fs.readFile('./data/2-11253540.zip', function (err, data) {
if (err) throw err;
JSZip.loadAsync(data).then(function (zip) {
console.log('Process Zip: ', zip);
});
});
};
describe('Process', () => {
const process = require('./process');
searchfile();
it('001', () => expect(process()).toEqual(null));
});
它看起来与我上面描述的不太相似,但是它是一个测试版本,用于检查它是否有效。在我的业力配置中,我使用browserify来处理需求。
因此, searchfile 函数搜索文件,而 process 函数将使用该文件。运行此测试时,出现错误,提示 fs.readFile不是函数。
但是,如果我在 process 函数中放入了 searchfile 的代码并直接运行它,就可以正常工作。
为什么不起作用?
答案 0 :(得分:3)
查看屏幕快照中的最后两行绿色文本(为什么要发布文本图片?!)。
您正在Chrome中运行测试。
fs模块是Node.js功能。
fs模块在Chrome中不可用(如果网页可以从访问者的文件系统中读取任意文件,那将很愚蠢)。