Tag: fs

如何发送一个http响应,而不使用node.js中的http模块?

我需要在node.js中实现一个HTTP服务器,而不使用http模块。 多好玩! 我在发送响应套接字时遇到了问题。 我试图获取一个文件,所以我的代码如下所示: fileStream = fs.createReadStream('example.jpg'); fileStream.on("end", function (close) { var str = "HTTP/1.1 200 OK\r\Content-Type: image/jpeg\r\n" //and some more headers. socket.write(str); socket.pipe(fileStream); socket.end("\r\n"); }); 我错过了什么? 我当然使用净模块来获取套接字和FS。

节点js fs模块说对象没有方法appendFile

我正在build立一个节点js应用程序(用于学习),我将每个操作logging到一个名为log.txt的文件中 logging器模块具有以下代码: var fs = require('fs'); function write(data,filename) { var entry = 'Time: '+new Date(); if(filename !=null || filename != undefined) entry = entry+'\n\tFile: '+filename; if(data !=null || data != undefined) entry = entry+'\n\tMessage: '+data; entry = entry+'\n'; fs.appendFile('./log.txt',entry,function(err){ if(err){console.log('Log NOT Appended with data:\n\t'+entry);} else{console.log('Log Appended with data:\n\t'+entry);} }); } exports.write = write; 现在在我的app.js我要求它作为: var […]

摩卡fs.existsSync总是失败

我正试图检查一个文件是否存在于我的摩卡testing中。 我知道这个文件存在于testing文件夹中(为了简单起见,我把它放在那里,而我试着让它工作)。 但是不pipe我做什么,fs.existsSync总是失败。 Logger.startup()创build文件。 Logger.getFilename()返回一个类似于5-17-30-2013.log的值。 我是摩卡新手,所以如果我犯了一个经典的错误,我不知道。 据我所知,我正在同步使用摩卡。 感谢所有的帮助。 这是我的摩卡testing脚本: var logger = require('../logger'); var fs = require('fs'); describe("Logger", function () { it("Creates a file", function () { logger.startup(); console.log(logger.getFilename()); if (!fs.existsSync(logger.getFilename())) { throw ("Logging File Does Not Exist"); } }) })

在完成文件传输时观察文件更改

我有一个简单的节点脚本,用于查找文件更改并使用ssh将文件复制到远程服务器。 fs.watch(filename,function(curr,prev){ //copy file to the remote server }); 但是,由于我正在观看的文件是通过ftp上传的,我接收到的每一个数据块都会被修改,callback被触发。 只有当完整的文件被传输时,有什么方法才能查找更改? 提前致谢。

fs.unlink不会删除文件

在我的Express服务器上,我想把用户上传的文件重命名为符合他们的用户名。 如果用户名上传新文件,则replace前一个文件。 代码如下: var newPath = 'uploads/' + user.username + '.' + (file.extension).toLowerCase(); var basePath = path.resolve(__dirname + '../../../') + '/'; // Copy, rename and delete temp file var is = fs.createReadStream(basePath + file.path); var os = fs.createWriteStream(basePath + newPath); is.pipe(os); is.on('end', function (error) { if (err) return res.send(500); fs.unlink(basePath + file.path); }); 问题是, fs.unlink(basePath […]

Nodejs createReadStream只读取大型JSON文件的一个数据块

我正在使用Nodejs从一个非常大的JSON文件(1GB +)中读取JSON对象。 JSON文件格式为[{field1:x,field2:x,field3:x},{…},…,{…}]。 每个对象都没有行分隔。 为了避免内存问题,我正在使用fs.createReadStream并按顺序处理每个数据块。 这工作,我得到有效的JSON对象,但读者只读一个数据块后停止。 为什么不读取文件的其余部分? 我的解决scheme受到了这个问题中被接受的答案的启发: 在Nodejs中parsing大的JSON文件 这里是代码: // Get the JSON file var fs = require('fs'); var stream = fs.createReadStream('Results.json', {flags: 'r', encoding: 'utf-8'}); var buf = ''; var count = 0; stream.on('data', function(chunk) { console.log("Stream on data!"); // ONLY EXECUTED ONCE buf += chunk.toString(); // when data is read, stash it […]

使用async.parallel时出错

我在node.js中使用asynchronous时遇到了绑定错误。 有问题的代码: var async = require('async'); var fs = require('fs'); var path = require('path'); function ignoreWhiteSpaceJudge(outDesired, outGenerated){ var contentOutDesired = ""; var contentOutGenerated = ""; async.parallel([ function(outDesired, callback) { console.log(outDesired); fs.readFile(outDesired, 'utf8',function(error, data) { if (error) { return callback(error); } else { contentOutDesired = data; return callback(); } }); }, function(outGenerated, callback) { fs.readFile(outGenerated, 'utf8', […]

在服务器上列出静态内容,并使用Express将其作为JSON返回

我有一个非常简单的应用程序提供静态文件: var express = require('express'); var app = express(); app.use(express.static(__dirname + '/files')); app.listen(process.env.PORT || 8080); 我想通过响应GET 文件夹使这个应用程序稍微更聪明。 我的意思是, 在JSON中列出文件夹的完整列表 。 例如,对于localhost:8080/的GET,我希望应用程序返回: [{ "type" : "file", "name" : "file1.ext" }, { "type" : "file", "name" : "file2.ext" }, { "type" : "dir", "name" : "a-folder" }] 代替: Cannot GET / 有没有办法扩展Express的静态行为来实现这一目标? 如果没有,你会推荐什么方法? 编辑 :我试图使用服务器serve-index中间件(以前的directory ),工作正常,但不幸的是直接返回HTML,当我需要原始的JSON。

一旦我开始添加文件到我的控制器文件夹代码中断 – 为什么?

我使用节点,expression,FS和一些其他的东西来创build我的第一个MVC框架应用程序。 我现在正在search更多关于我遇到的错误,但没有find我正在寻找的清晰度。 现在,当我将所有的代码保存在我的server.js文件中时,我没有收到错误。 但是这不是什么MVC的,所以在某些时候,我创build了一个users_controller.js文件开始移动到下面的路线(除了('/')路线)。 一旦我这样做,一切都打破了! 我得到的错误是=> TypeError: undefined is not a function 被引用的行是=> route.controller(app); 这里是代码: var express = require('express'); var logger = require('morgan'); var path = require('path'); var exphbs = require('express-handlebars'); var bodyParser = require('body-parser'); var methodOverride = require('method-override'); var session = require('express-session'); var cookieParser = require('cookie-parser'); var pg = require('pg'); var bcrypt = require […]

将服务器内的数据从节点js中的一个文件发送到另一个文件

我想使用fs或replace在CSS文件中replace一个确切的variables值,我已经足够的search,但我发现只有replace文件在两个FS和replace,下面是我试图这样做的代码,但我想要replace一个css文件中的variables //to main.css var css = selectedTemplatePath + '/css/'; var mainCss = css + '/main.css'; var themecolor = new ThemeColor(req.body.color); themecolor.color = color; themecolor.savecolor(function(err, app ){ fs.stat(mainCss, function(err, stat){ var searchApp = { _id: appId }; mainCss.findOne(searchApp, function(err, app){ if(err) return console.error(err); replaceThemecolor(app, themecolor); console.log("k"); }); }); function replaceThemecolor(themecolor) { fs.readFile(mainCss, 'utf-8', function(err, data) { […]