Tag: fs

node.js中可写入stream的write()方法有多快?

在我的服务器端,我使用可写入stream来logging所有连接到服务器的客户端的变化数据。 这是我写的: function updateLoop () { var data = {'timeStep': timeStep, 'playerInfo': playerInfo}; var text = JSON.stringify(data); writeStram.write(text + '\n'); timeStep += 1; } … updateTimer = setInterval(updateLoop, 50); 所以函数updateLoop()每50ms调用一次。 当“playerInfo”较小时(小于1KB),例如服务器端运行20s后,输出文件中有20 * 1000/50 = 400行数据 但是当“playerInfo”变大时,如6KB以上,服务器端运行20s后,输出文件中只有220行数据。 较大的playerInfo是输出文件中成功logging数据的较小行。 我想知道是否有方法write()的调用率有一些限制 非常感谢你们的帮助!

Node.js强大的重命名上传的文件

试图完成“Node初学者书”这本书,最后我需要的是实现修改一个请求处理程序,它显示一个图像,在用户上传后重命名,我使用node-formidable和fs模块。 var fs = require("fs"), formidable = require("formidable"); function upload (resp, req) { var form = new formidable.IncomingForm(); form.parse(req, function (error, fields, files) { /* This is the part that doesn't work on Windows */ fs.rename(files.upload.path, "/tmp/test.png", function (error) { if (error) { fs.unlink("/tmp/test.png"); fs.rename(files.upload.path, "/tmp/test.png"); } }); resp.writeHead(200, {"Content-Type":"text/html"}); resp.write("Received image:<br/>"); resp.write("<img src=/show />"); […]

不支持的内容typesImage / PNG

我试图上传一个图像文件在服务器上使用NodeJS busboy ,我得到这个错误: Service Listening for request on: 8080 Error: Unsupported content type: image/png at Busboy.parseHeaders (D:\ImageUploadService\node_modules\busboy\lib\main.j s:66:9) at new Busboy (D:\ImageUploadService\node_modules\busboy\lib\main.js:21:10) at D:\ImageUploadService\server.js:15:15 at Layer.handle [as handle_request] (D:\ImageUploadService\node_modules\expr ess\lib\router\layer.js:76:5) at next (D:\ImageUploadService\node_modules\express\lib\router\route.js:100: 13) at Route.dispatch (D:\ImageUploadService\node_modules\express\lib\router\rou te.js:81:3) at Layer.handle [as handle_request] (D:\ImageUploadService\node_modules\expr ess\lib\router\layer.js:76:5) at D:\ImageUploadService\node_modules\express\lib\router\index.js:234:24 at Function.proto.process_params (D:\ImageUploadService\node_modules\express \lib\router\index.js:312:12) at D:\ImageUploadService\node_modules\express\lib\router\index.js:228:12 以下是我的代码: app.post('/uploadImage',function(req,res){ var […]

在Node中写入和删除JSON文件中的元素

我目前正在阅读一个JSON对象文件,我试图修改元素并写回它。 我知道这可以很容易地用MongoDB来完成,但是我需要用JSON文件来完成。 我目前的结构如下所示: { "lastupdated": "Thu Nov 20 2014 10:57:08 GMT-0500 (EST)", "restaurants" : { "McDonalds": { "Americas": [ "Atlanta", "Cambridge", "Dayton" ], "Asia": [ "Seoul", "Shanghai", "Singapore", "Tokyo" ], "Europe": [ "Milan", "Madrid", "Amsterdamn" ] }, "BurgerKing" : { "Americas": [ "Atlanta", "Boston", "Charlottesville" ], "Asia" : [ "Hong Kong", "Singapore", "Tokyo" ], "Europe" […]

使用节点缓冲区或fileStream与formDatafile upload

更新 :我已经或多或less地使用multipart( app.use(multipart({uploadDir: __dirname + '/../uploads'}))从这些说明中解决了这个问题),但仍然不知道为什么我的原始代码下面)失败。 在这个问题上有很多变化,我尝试了那里没有成功的想法。 我正在使用file upload指令 (并尝试另一种开源替代方法)将二进制文件发送到节点服务器,该节点服务器运行以下代码(基于我现在无法获得的SO答案): exports.receive = function(req, res) { var fitFileBuffer = new Buffer(''); // req.setEncoding("binary"); //doesn't help req.on('data', function(chunk) { fitFileBuffer = Buffer.concat([fitFileBuffer, chunk]); }); req.on('end', function() { fs.writeFileSync( "today2.fit", fitFileBuffer, 'binary'); res.send(200); }); }; 如果我上传today.fit并与today.fit进行比较,它们具有相同的Kb数据,但是不完全相同,并且随后的代码无法处理该文件。 鉴于这发生了两件第三方代码,我怀疑问题在于我的代码。 以下是POST正在进行的客户端的详细信息

节点:尝试重命名目录中的每个文件跳过一些

我试图通过一个目录(及其所有的子目录),并重命名(移动)每个图像,如果它是一个.jpg文件。 我认为我的代码是正确的。 我正在使用asynchronous重命名和递增计数器来增加文件名。 由于某些原因,在我的四个左右子文件夹的testing中,只有一半的图像被重命名。 我不知道这是为什么,因为我只是在callback文件(一旦图像已经成功重命名)和检查控制台列出rename被调用的每个文件时递增。 var fs = require('fs'); var filePrefix = 'new_Images'; var folderName = 'changed'; var counter = 0; function examine (path) { fs.readdir(path, function (err, files) { files.forEach(function (file) { var oldPath = path + file; fs.stat(oldPath, function (err, stats) { if (stats.isDirectory()) { examine(oldPath + '/'); } else { var suffix […]

节点fs.stat名称给定未定义

当我做一个文件fs.stats函数console.log(stats) ,它给了我这样的事情: { dev: 16777223, mode: 33188, nlink: 1, uid: 501, gid: 20, rdev: 0, blksize: 4096, ino: 49868100, size: 5617, blocks: 16, atime: Mon Jan 05 2015 18:18:10 GMT-0700 (MST), mtime: Thu Sep 25 2014 21:21:28 GMT-0600 (MDT), ctime: Thu Sep 25 2014 21:21:28 GMT-0600 (MDT), birthtime: Thu Sep 25 2014 21:21:28 GMT-0600 (MDT), […]

stats.isFile()不能识别path中的文件

我正在尝试使用fs.stat和fs.lstat来识别path是文件的path fs.stat('/img/items/item.jpg', function (err, stats) { var isDir = stats.isDirectory(); var isFile = stats.isFile(); console.log('isDir: ', isDir); console.log('isFile: ', isFile); }); 但是,消息说,这是一个目录,是文件是false 。 我在这里错过了什么东西是正确的方式来认识到path是一个文件path? 感谢您的善意帮助

如何在Express上重新加载一个文件而不重新启动?

我使用fs.appendFileSync(…)将路由追加到路由JavaScript文件中,但是,由于需要重新启动Node.J以重新加载文件,所以不能访问附加的路由。 我只需要重新加载正在追加的文件。 var express = require('express'); var router = express.Router(); module.exports = router; /* New Routes are appended here. Example: router.get('/bobby', function(req, res, next){ }); */ 我已经search堆栈溢出的方式重新加载文件,而无需重新启动服务器,但所有的问题只涉及自动重新加载开发,而不是真正的事情。 我已经看到了关于Nodemon和Node-Supervisor的build议,但是这些build议只是为了开发。 这可能是一个愚蠢的问题,但我不知道如何解决它。 感谢您的阅读。

将新的对象添加到数组

我努力将一个新的对象推入一个数组。 目前下面的代码似乎只是覆盖一个单一的对象。 我可以看到我想要通过控制台推送到数组的数据,但它只是不存储新的对象。 有任何想法吗? fs.readFile('check.json', function (err, check) { if (err) throw err; var newData = JSON.parse(check); var tempData =[]; for (var index=0; index<newData.length; index++){ tempData.push(newData); } tempData = newData; });