Tag: fs

如何在节点的FileSystem.readfile中unit testing逻辑cb

目前,我有一个读取文件的function。 当我抛出并testingreadfilecallback以外的错误时,它将起作用: var doWork = function(path) { //throw new RangeError('blah'); // works, error is thrown fs.readFile(path, 'utf-8', function(error, data) { //etc…. logic.. etc.. if(data.split('\n')[0] > x) throw new RangeError('blah'); //does not work }); } 我的testing: describe('my test suite', function(){ it('should throw an error', function(){ var func = function() { doWork('my path'); } var err = […]

这个fs.readdir函数中的竞态条件在哪里?

我想列出一个目录中的所有文件夹,并在结尾列出有多less个文件夹。 这是我的代码: fs.readdir(dir, (err, folders) => { if (err) return console.log(err); let count = 0; for (let i = 0; i < folders.length; i++) { let folder = folders[i]; fs.stat(dir + '/' + folder, (err, stats) => { if (err) return console.log(err); if (stats.isDirectory()) { console.log(folder); count++; } if (i >= (folders.length – 1)) { […]

fs.appendFile,但如果path不存在,则失败

通过fs文档查看,我正在寻找一个标志,我可以使用fs.appendFile,如果path不存在将引发错误。 如果path已经存在,我会看到与提升错误有关的标志,但是如果path不存在,则不会看到会引发错误的标志 – https://nodejs.org/api/fs.html

find大量的文件,并获得节点FS的总数

我build立一个节点脚本asynchronous输出一个目录的文件数和行数; 但是,我在其asynchronous控制stream程中遇到麻烦。 // Import Dependencies const fs = require('fs'); const get_dir_line_count = (dir) => { let output = { file_count: 0, file_line: 0, path: '' }; new Promise( (resolve, reject) => { fs.readdir(dir, (err, dir_contents) => { resolve(dir_contents); }); }).then( (promise_contents) => { Promise.all(promise_contents.map( (file) => { const file_path = dir + '/' + file; […]

访问callback函数外的node.js中由readline&fsparsing的数据

这个问题是不同的,因为已经有一个答案。 具体来说,这段代码从node.js文档中调用,关于使用fs和readfile,并查找文件标志的结尾,我学到的是readfile.close方法。 感谢你的回答。 我在本地编写了一个小工具,试图用一个空白行将key:value对的文本文件转换成一个JSON文件,以便在React项目中使用。 我直接从node.js文档中获得了readline函数的基础。 我在我的Mac上使用节点6.9.0 这里是完整的脚本: const readline = require('readline'); const fs = require('fs'); const rl = readline.createInterface({ input: fs.createReadStream('usat-ncaa-programs.txt') }); var newPairs=["test"]; rl.on('line', function (line) { if (line===null){ newPairs.push("}], [ {") } else if (line) { var keyValue = line.match(/^(.*):(.*)/) var newKeyValuePair = "'" + keyValue[1].trim() + "': '" + keyValue[2].trim() + "'" […]

用nodejs在一个文件上写http请求

我怎样才能保存一个文件的HTTP请求? 我使用nodejs作为服务器。 我通过ajax发送数据,如下所示 user_info = { system_info: [ {'browesr': browser}, {'brower-version': version}, {'cookies': cookieEnabled}, {'os': os}, {'os-version': osVersion} ] } } $.ajax({ url: 'http://127.0.0.1:4560', data: {"info" : JSON.stringify(user_info)}, type: 'POST', jsonCallback: 'callback', success: function(data) { var ret = jQuery.parseJSON(data); $('#lblResponse').html(ret.msg); console.log('success'); }, error: function(xhr, status, error) { console.log('Error:' + error.message); $('#lblResponse').html('Error connecting to the server.'); […]

任何人都可以解释这些function的论点?

我正在使用NodeJs并尝试写入和读取二进制文件。 我用NodeJs文档头痛,没有提供太多的解释。 特别是我想知道 fs.writeSync(fd, buffer, offset, length, position) 我知道'fd'和'buffer',但是与​​'offset'和'position'混淆了。 fs.readSync(fd, buffer, offset, length, position) 我猜这个是一样的 可以有人向我解释吗? 谢谢

当我们应该使用file.write(…)而不是file.createWriteStream(…)?

file.write(fd,…)和file.createWriteStream(…)什么file.createWriteStream(…) ? 例如:在下面的代码中,两个片段做同样的事情。 var http = require('http'); var fs = require('fs'); http.createServer(function(request, response) { var newFile = fs.createWriteStream('newFile.txt'); request.pipe(newFile); });, var http = require('http'); var fs = require('fs'); http.createServer(function(request, response) { var data = ""; request.on('data', function(chunk) { data += chunk.toString(); }); reuqest.on('end', function() { fs.write('newFile.txt', chunk); }); }); 我很困惑,哪一个更好? 谢谢。

NodeJS fs.statSync(…).isDirectory()对文件返回true

尝试使用以下答案中的代码: https : //stackoverflow.com/a/24594123/3951987 为我目录中的文件返回true。 为了提供更多的上下文,下面是一些基本的代码来描述我的实现: getDirs = (a_path) => { return fs.readdirSync(a_path) .filter(file => fs.statSync(path.join(a_path, file)).isDirectory()); } someCode = () => { let some_path = path.resolve(process.cwd(), "example"); console.log(getDirs(some_path)); } 在我的项目中,我有: example/ – test/ – manifest.json index.js 不知何故,上述getDirs函数仍将manifest.json作为目录返回,即使应用了给定的filter。 其他人有这个? 有任何想法吗? 附加信息 我已经将getDirs函数修改为以下内容: getDirs = (a_path) => { console.log("getDirs a_path = "+a_path); let dirs = fs.readdirSync(a_path); […]

节点FS找不到文件夹

使用节点,我创build一个文件夹,然后在该文件夹中有一个文件。 我创build了一个函数来删除它,但它绝对拒绝find该文件夹​​。 这是我的function: function deleteFile(path) { if( !fs.existsSync(path) ) { setTimeout(deleteFile(path), 500) } else { fs.readdirSync(path).forEach(function(file){ var curPath = path + "/" + file; if(fs.lstatSync(curPath).isDirectory()) { // recurse deleteFolderRecursive(curPath); } else { // delete file fs.unlinkSync(curPath); } }); fs.rmdirSync(path); } } 它将继续recursion,直到它达到最大调用堆栈并崩溃,但在该事件发生之前该文件夹存在很长时间。 正如你所看到的,它里面既存在文件夹又存在文件。 有人可以帮我解决这个问题吗?