Tag: fs

节点fs错误:EPERM:操作不允许,打开

我在我的应用程序中得到这个错误: 错误:EPERM:操作不允许,打开“C:\ Program Files(x86)\ Full Menu \ db \ main.json” 我有的应用程序是用电子样板build立的。 我正在使用这个函数来获取应用程序根目录的path: path.dirname(process.execPath) 这是写入文件的脚本: fs.writeFile(apath + '/db/' + elem + '.json', JSON.stringify(results) 我知道问题是什么:权限。 但是,我怎样才能得到这个工作,而不需要以pipe理员身份运行应用

我如何在Node js中使用fs.read()

我尝试在Mac OS中使用Nodejs fs.read方法。 然而,它不工作..我使用下面的源代码 var fs = require('fs'); fs.open('helloworld.txt', 'r', function(err, fd) { fs.fstat(fd, function(err, stats) { var bufferSize=stats.size , chunkSize=512, buffer=new Buffer(bufferSize), bytesRead = 0; while (bytesRead < bufferSize) { if ((bytesRead + chunkSize) > bufferSize) { chunkSize = (bufferSize – bytesRead); } fs.read(fd, buffer, bytesRead, chunkSize, bytesRead, testCallback); bytesRead += chunkSize; } console.log(buffer.toString('utf8')); […]

带有标志“a”的nodejs fs.openSync()无法创build不存在的文件

我想为我的应用程序编写一个日志模块,它将根据模块初始化的时间(调用模块中的init函数)创build一个不存在的文件。 但是,当我尝试使用fs.openSync(log_file_name,'a')创build新的日志文件时fs.openSync(log_file_name,'a')它总是会出错。 我感谢任何告诉我为什么它不能创build新文件。 const fs=require('fs'); const path=require('path'); const moment=require('moment'); var time=function() { return moment().format('YYYY-MM-DD[_]hh:mm:ss:SSS'); }; //init var fd; // file descriptor function init(log_dir) { var log_file_name=path.join(log_dir,time()+'.log'); this.fd=fs.openSync(log_file_name,'a'); } init(__dirname); 错误如下所示: "C:\Program Files (x86)\JetBrains\PhpStorm 2016.1\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" index.js fs.js:634 return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode); ^ Error: ENOENT: no such file or directory, open 'I:\twesix\lib\twesix_nodejs\log\2016-05-19_01:34:52:621.log' at Error (native) […]

循环递增在传递给函数之前进行限制

我有一些代码来复制数组中包含的每个源目标和目标目录在dirs数组中的文件。 每循环一次,它就会调用复制的函数。 它看起来像这样: var filesInEachDir ["file1", "file2", "file3"]; var dirs = [ {"source": "sourceDirectory1", "dest":"destinationDirectory1"}, {"source": "sourceDirectory2", "dest":"destinationDirectory2"}, {"source": "sourceDirectory3" "dest":"destinationDirectory3"}, ]; for (var i = 0; i < dirs.length; i++){ fs.mkdir(dirs[i], function(err){ if(err){ console.log(err); }else{ copyFiles(dirs[i], filesInEachDir); } }); } function copyFiles(dirs, files){ for (var c = 0; c < files.length; c++){ fs.copy(files[c], dirs.source, […]

node.js – caching映像到文件系统和pipe道映像以响应

我的目标是构build一个简单的文件系统caching系统,以减less我们需要对缩略图进行API调用的次数。 该过程是检查文件系统fs.stat上是否已经存在fs.stat ,如果不是从API端点request映像,同时将映像写入文件系统。 我希望能够同时向文件系统和响应提出请求,但我不相信这是可能的,所以我首先将响应stream式传输到文件系统,然后创build一个stream来pipe理映像文件系统到response对象。 它运行良好,但是我必须相信这是在node.js中执行此任务的更高效/最优化的方法。 有什么想法吗? function (req, res, next) { // Check to see if the image exists on the filesystem // TODO – stats will provide information on file creation date for cache checking fs.stat(pathToFile, function (err, stats) { if (err) { // If the image does not exist on the file system […]

我如何链接多个承诺?

我不太清楚,也许我错过了一些显而易见的事情,但我无法弄清楚如何链接两个承诺。 我的基于callback的代码看起来像这样: async.series([ function (cb) { // Create the directory if the nodir switch isn't on if (!nodir) { fs.mkdir('somedirectory', function (err) { if (err) { log('error while trying to create the directory:\n\t %s', err) process.exit(0) } log('successfully created directory at %s/somedirectory', process.cwd()) cb(null) }) } cb(null) }, function (cb) { // Get the contents […]

关于node.js中fs的问题

目的 要知道什么时候fs.writeFileSync()或fs.writeFile()完成写入文件,所以我可以执行另一个函数。 背景 我正在使用fs编写一个文件,为了知道文件写完的时间,我检查了它的文档: https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback 读完之后,我将注意力集中在fs.writeFile()和fs.writeFileSync()但是我发现缺less文档,我怀疑。 关于fs.writeFile() 在写入文件之前调用callback函数,因为正在写入文件或写入并保存在磁盘中之后? 关于fs.writeFileSync() 如何知道是否发生错误,如果它总是返回undefined ? 作为一个同步写入,这是否意味着我的代码将被迫等待,直到文件被完全写入? 一般的问题 如果我想同时写两个不同的文件,并且在两者都完成时执行一个单独的操作,那么我将如何使用fs.writeFile()来执行操作? NPM中有用户友好的图书馆是否有这样的工作? 我搜查,但我没有发现任何令人信服的。 结论 我总是与fs混淆,我的知识不足以最大限度地使用我的代码。 为了改进,我需要看到更多的代码示例,因此,代码示例的答案将是首选。 感谢您的时间 !

fs in Node.js不理解〜/

我试图检查一个目录是否作为node.js中命令行应用程序的一部分存在。 但是, fs似乎并不理解~/ 。 例如,以下返回false … > fs.existsSync('~/Documents') false …但是这返回true … > fs.existsSync('/Users/gtmtg/Documents') true 即使他们都是一样的东西 为什么会发生这种情况,是否有解决方法? 提前致谢!

Node.js中的fs.ReadStream和fs.createReadStream是否有区别?

在Node.js中的fs模块中, fs.ReadStream和fs.createReadStream是否有区别? 据我所知,都采取文件名,然后创buildstream对象…对吗?

node.js使代码等待,直到fs.readFile完成

我在node.js文件系统中遇到了问题。 这是我的代码。 我的函数总是返回一个空string。 我想知道有没有办法让我的函数停止执行,直到readFile方法完成。 var fs = require('fs'); function myfun(filePath){ var str = ''; fs.readFile(filePath, function(err, data){ if(err) throw err; str = data; }); return str; //here, the variable str always return '' because the function doesn't wait for the readFile method complete. } 添加解释 其实我正在做这样的事情:函数myfun用于代替str你可以看到我的代码: function fillContent(content) { var rex = /\<include.*?filename\s*=\s*"(.+?)"\/>/g; var replaced […]