Tag: fs

Node.js:console.log消息不显示,如果方法抛出exception…为什么?

在Node.js中,如果我有引发exception的方法,那么来自该方法的console.log语句不会触发。 我认识到,在下面这个简单的testing案例中,我应该从readFileSync调用中捕获exception,否则就会防御它。 只是好奇,如果有人可以解释我的行为。 简单的testing案例: var fs = require('fs'); function readAFileThatDoesntExist(filename) { console.log(filename); fs.readFileSync(filename); } console.log("We're about to read a file that doesn't exist!"); readAFileThatDoesntExist("afile"); 输出: $ node test.js We're about to read a file that doesn't exist! fs.js:338 return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode); ^ Error: ENOENT, no such file or directory 'C:\blog\projects\bloggen\scripts\afile' at Object.fs.openSync (fs.js:338:18) at […]

nodejs将原始图像数据写入jpeg文件?

我从获取请求获取数据。 数据(在响应的主体中)看起来像这样: … ÿÀ " ÿÄ ÿÄ N !1"AQa2q¡#BR±ð3brS²ÁÂÑá$ñCDTst¢³&45dÃÒÿÄ ÿÄ – !1A"Qa¡ðq±ÁÑ2áÿÚ ? û." """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """ """R1º#ª¥7Jíî½M6îNö ]·!]=Fvß`7~qÆee²%·JokkZüCbìþ<ù{ã9öùË®´(%A,Ià 2I?t×bn6wÆù¥V 2SÀ><k5ºÙØ92EhÎçü¨/aÝ!ã|ñþ¥ñßT}U«¦ÒÚµ«xuÕfƳ KØ {ù{ð$·DúBMZÆcp}´R|Mä2ó8üg)·ùôfõ$zXiRÞü}óÆ>,êÚûíR5ý:\ ….. 响应标题如下所示: HTTP/1.1 200 OK Content-Length: 26965 Access-Control-Allow-Origin: * Content-Type: image/jpeg; charset=UTF-8 […]

在Txt文件中查找string,删除整行

我目前正在使用node.js创build一个IRC bot。 bot允许用户将歌曲链接添加到数据库。 每次有人提交歌曲时,都会将其添加到“shuffle.txt”的新行中,如下所示: user1,The Beatles,Yesterday,(youtube link) user2,The Rolling Stones,Angie,(youtube link) user1,The Bealtes,Yellow Sumbarine,(youtube link) 请注意,user1错误地input了最新的信息。 我试图做一个UNDO命令,以便用户可以删除他们最近input的行。 我打算通过在shuffle.txt中查找它们的名称的最新发生并删除它发现的整个行来做到这一点。 这是我的消息监听器: bot.addListener('message', function(from, to, message) { if (message.indexOf(config.prefix) == 0) { message = message.slice(1); var token = message.split(" "); if (token[0] == 'undo') { //find and delete } } }); input命令的用户存储为from 我假设我将不得不按照这样的方式做一些事情: var songList = fs.readFileSync('shuffle.txt', 'utf8'); […]

如何在node.js中的同一个进程中同步对文件的访问?

我有一个Web服务器,读取和写入磁盘上的数据文件。 我想要一个文件只写入一个Web请求。 这里有一个示例程序来说明我的问题。 它将状态文件保存在“/tmp/rw.txt”中,并在每次Web命中时递增整数内容。 运行这个程序,然后运行诸如ab -n 10000 -c 1000 http://localhost:3000/ ,表明通过多次命中从文件中读取相同的值,并且它被多次写入。 注意:我知道flock()和fs-ext 。 但是,flock()会将文件locking到当前进程; 因为这里所有的访问都在同一个进程中,flock()不起作用(这个例子相当复杂)。 另外请注意,我通常会使用express,async等来完成大部分工作。 只是为了举例而坚持基础。 var http = require("http"), fs = require("fs"); var stateFile = "/tmp/rw.txt"; var server = http.createServer(function(req, res) { var writeNum = function(num) { var ns = num.toString(10); console.log("Writing " + ns); fs.writeFile(stateFile, ns, function(err) { if (err) { res.writeHead(500, […]

用fs.readFileSync和eval内容读取文件…哪个范围有function? 如何访问?

我最近试图将文件导入到我现有的node.js项目中。 我知道这应该写一个模块,但我包括我的外部JavaScript文件是这样的: eval(fs.readFileSync('public/templates/simple.js')+'') simple.js的内容如下所示: if (typeof examples == 'undefined') { var examples = {}; } if (typeof examples.simple == 'undefined') { examples.simple = {}; } examples.simple.helloWorld = function(opt_data, opt_sb) { var output = opt_sb || new soy.StringBuilder(); output.append('Hello world!'); return opt_sb ? '' : output.toString(); }; (是的,谷歌封闭模板)。 我现在可以使用以下方式调用模板文件: examples.simple.helloWorld(); 一切都像预期一样工作。 然而,我无法弄清楚这些函数的范围是什么,我可以访问这个例子对象。 一切都运行在一个node.js 0.8服务器,就像我说的工作…我只是不知道为什么? 谢谢澄清。

Chokidar(Node.js)的效率如何?

我在服务器上有一个caching引擎,它caching在根目录下访问的所有文件。 我正在考虑使用Chokidar来观察整个目录树(recursion)的文件更改,并相应地更新caching。 但是我担心如果一个子目录包含数十万个文件会发生什么 – Chokidar会有多高效?

Node.JS fs.readFileSync()错误的参数

我在我的节点中得到以下错误,不知道为什么: TypeError: Bad arguments at Object.fs.readFileSync (fs.js:277:11) at getSeries (/Users/user/tv/final.js:57:16) at /Users/user/tv/final.js:89:4 at /Users/user/tv/node_modules/async/lib/async.js:610:21 at /Users/user/tv/node_modules/async/lib/async.js:249:17 at iterate (/Users/user/tv/node_modules/async/lib/async.js:149:13) at /Users/user/tv/node_modules/async/lib/async.js:160:25 at /Users/user/tv/node_modules/async/lib/async.js:251:21 at /Users/user/tv/node_modules/async/lib/async.js:615:34 at /Users/user/tv/final.js:86:4 我很确定它与我使用的async npm软件包没有任何关系,因为我在开始使用它之前得到了同样的错误。 这里是代码: function getSeries() { JSON.parse(fs.readFileSync('updates.json', function(err,data) { if (err) { console.error(err); } else { var json = data; } }));

如何使用nodejs使用缓冲区创build一个readstream

我有这个json: var myJSON = '{"kind": "person", "fullName": "Rivka3"}'; 我试图将其上传到bigquery,使用createReadStream。 当我保存它当地我成功: fs.writeFile("/tmp/bq_json_file_new.json", myJSON, function(err){}); fs.createReadStream("/tmp/bq_json_file_new.json") .pipe(table.createWriteStream(metadata)) .on('complete', function(job) { job .on('error', console.log) .on('complete', function(metadata) { console.log('job completed', metadata); }); }); 现在我试图做到这一点,而不是保存它本地 – 使用缓冲区: fs.createReadStream(new Buffer(myJSON, "utf8")) .pipe(table.createWriteStream(metadata)) .on('complete', function(job) { job .on('error', console.log) .on('complete', function(metadata) { console.log('job completed', metadata); }); }); 但我收到这个错误: fs.js:575 binding.open(pathModule._makeLong(path), TypeError: path […]

NodeJS fs.watch on目录只在被编辑器更改时触发,而不是shell或fs模块

当下面的代码运行时,只有手动编辑和保存tmp.txt才能触发监视,使用我的ide,TextEditor.app或vim。 它不通过写入stream或手动shell输出redirect的方法(键入echo“test”> /path/to/tmp.txt“)。 虽然如果我看文件本身,而不是它的dirname,那么它的作品。 var fs, Path, file, watchPath, w; fs = require('fs' ); Path = require('path'); file = __dirname + '/tmp.txt'; watchPath = Path.dirname(file); // changing this to just file makes it trigger w = fs.watch ( watchPath, function (e,f) { console.log("will not get here by itself"); w.close(); }); fs.writeFileSync(file,"test","utf-8"); fs.createWriteStream(file, { flags:'w', mode: […]

Uncaught TypeError:URL不是使用WHATWG URL对象支持电子的构造函数

我正在尝试使用此处的 WHATWG URL对象支持来读取文件 我得到这个错误:Uncaught TypeError:URL不是一个构造函数 这里是我的代码: var fs = require("fs"); const { URL } = require('url'); var dbPath = 'file://192.168.5.2/db/db.sqlite'; const fileUrl = new URL(dbPath);