Tag: fs

如何在nodejs中使用fs从多个目录获取文件名?

我想从所有的目录中获取文件信息一旦我有,我有进一步的代码实现,但我卡在这里,并得到错误粘贴的问题任何想法是什么在下面的代码中实现错误? cron.js var fs = require('fs'); var path = require('path'); var async = require('async'); var directories = ['./logs/dit', './logs/st','./logs/uat'] function cronJob() { directories.forEach(function(dir){ var files = fs.readdir(dir); async.eachSeries(files, function(file,callback) { var filePath = path.join(dirPath, file); var fileInfo = {}; fs.stat(filePath, function(err, stats) { if (err) { console.info("File doesn't"); } else { fileInfo.fileDate = stats.birthtime; fileInfo.filename […]

nodejs&JS'split'方法返回不同的结果

从txt文件中分割文本(utf16le,环境是macos); 我用fs读取aaa.txt,并分割('\ n \ n'),结果长度为1.我在页面上渲染数据,并用jquery读取内容,使用split('\ n \ n') ,结果长度是6(对的结果) aaa.txt 1 a 2 b 3 c d 4 e 5 f 6 g 节点代码: fs.readFile(__dirname+'/aaa.txt','utf16le',function (err,data) { if(err){console.log(err);} else { // console.log(data); // console.log(data); var textSubtitles = data.split('\n\n'); console.log('length'); console.log(textSubtitles.length);// the result is 1!!! res.render('aaa.ejs', { content:data }) } jquery代码: let sss = $('#fff').text().split('\n\n'); console.log(sss.length); […]

HTTP从不同的站点获取文件,并以Express下载

我试图从我的节点应用程序下载一个文件,在一个明确的HTTP请求后,然后返回文件下载。 我已经尝试了多种获取文件的方式,使用pipe道,blob等,但我在黑暗中抓取,我需要一些帮助。 代码可能会让你更深入地了解我正在努力实现的目标: var router = require('express').Router(); var fs = require('fs'); var http = require('http'); router.get('/download/:file', function (req, res, next) { http.get('http://anothersite/' + req.params.file, function(response) { res.setHeader('Content-disposition', 'attachment; filename=' + req.params.file); res.setHeader('Content-type', 'application/octet-stream'); res.download(fs.createWriteStream(req.params.file).pipe(response)); }); }); 这给我一个错误“不能pipe。不可读”。 该文件本身不是一个常规的文件格式(这是一个来自我们的定制软件,具有自己的扩展名的文件)。 我错过了什么? 任何有识之士将超级赞赏! 谢谢

正在复制文件

我有一个Node.js程序周期性地通过目录中的video文件循环。 如果添加或删除文件,程序将更新数据库以反映此更改。 添加文件时,使用FFmpeg生成缩略图。 当我尝试在当前正在复制到目录的文件上运行FFmpeg时遇到问题。 由于文件不完整,FFmpeg无法生成缩略图。 如果我知道一个文件被复制的时候,我可以忽略它,下一次扫描该目录的时候就会被拾取。 如何确定当前是否正在复制文件,或者如何循环目录而忽略当前正在复制的文件?

如何使用节点js缓冲区和转换映射

我正在关注一个关于nodejs的教程。 在教程中有这个例子: const fs = require('fs'); const conversionMap = { '88': '65', '89': '66', '90': '67', }; fs.readFile(__filename, (err, buffer) => { let tag = buffer.slice(-4, -1); for(let i=0;i < tag.length; i++) { tag[i] = conversionMap[tag[i]]; } console.log(buffer.toString()); }); // TAG: XYZ 我很确定我知道这个例子在做什么。 它正在读取文件,然后将其分配给一个缓冲区并写出来。 我知道它通过slice(-4, -1)find了TAG slice(-4, -1)从底部开始标记1并且结束)。 我只是不确定它会改变它。 先谢谢您的帮助!

Express只加载主页面

我试图学习快递。 我正在使用FS来加载我的HTML页面。 我唯一能够通过谷歌searchfind的是使用ASP.NET而不是Express。 Server.js: var express = require('express'); var path = require('path'); var fs = require('fs'); var app = express(); app.use(require('body-parser').urlencoded({ extended: true })); app.use(express.static(path.join(__dirname+'/'))) app.get('/', function(a,b,c){ fs.readFileSync('index.html'); }); app.post('/testaction', function(a,b){ console.log(a.body.log); fs.readFileSync('Logged.html'); }); app.listen(3000); index.html的: <!DOCTYPE html> <html> <head> <title>Test Page</title> </head> <body> <form method="post" action="http://localhost:3000/testaction"> <h1>Log This:</h1> <input type="text" name="log"/> <input type="submit", value="Press […]

如何确定目录是否是符号链接

我运行fs.lstat并得到这些目录的统计信息: Stats { dev: 16777220, mode: 16877, nlink: 8, uid: 501, gid: 20, rdev: 0, blksize: 4096, ino: 7366885, size: 272, blocks: 0, atime: 2017-04-16T23:18:17.000Z, mtime: 2017-04-16T23:14:49.000Z, ctime: 2017-04-16T23:14:49.000Z, birthtime: 2017-04-16T23:14:49.000Z } 我如何确定这个目录是否是一个符号链接?

process.stdout.write / process.stderr.write monkey-patch在subprocess中工作,但不是父进程

所以我在process.stdout.write / process.stderr.write上有这个简单的猴子补丁 const strm = fs.createWriteStream(logfile); const stdoutWrite = process.stdout.write; process.stdout.write = function () { strm.write.apply(strm,arguments); stdoutWrite.apply(process.stdout, arguments); }; (对于process.stderr,它是相同的,正在写入同一个stream)。 问题: 当我用node x.js运行这个过程 该stream在closures之前并不完成全部写入,甚至不closures。 但是,如果我跑 $ node y.js # this runs x.js in child process 现在在子节点中运行的stream将完成写入,并且日志文件现在已满。 为什么会这样? 在使用fs.appendFileSync ,有没有一种方法可以确保在stream程closures之前数据stream将会stream失? 编辑: 我想我知道为什么会发生这种情况 – 我正在调用process.exit() ,它会提前closures进程,并可能在stream完成之前调用。 有没有一种方法来听stream何时写完? 如果调用process.exit()时,在stream上调用finish(),那似乎是一个人为的“完成”。 我试图等待“stream失”事件,但似乎从来没有开火。

Node.js fs.stat 在传递Buffer上

根据这里 fs.stat的文档, stat函数可以接受一个文件或缓冲区的stringpath。 但是当我通过一个缓冲区,我得到一个错误: [TypeError:path必须是string] 下面是代码。 exports.importNow = function (req, res) { try { fs.stat( req.files.csv.buffer, function (err, stat) { if( err == null ) { console.log(2); return resolve(); } else { console.log(3); return reject( [validation_errors.FILE_DOES_NOT_EXIST, err] ); } }); } catch ( err ) { console.log(5); console.log(err); return reject( [validation_errors.FILE_DOES_NOT_EXIST, err] ); } } […]

Nodejs fs.js TyperError,适用于Mac,但不适用于Windows

我得到这个错误: fs.js:81 throw new TyperError('Expected options to be either an object or a string. ) 它不是在我的Mac上做,但它在Windows上。 我不知道如何解决这个问题,我不知道nodejs 这是我的代码的全部,不知道问题的地方,因为我在几个地方使用fs // load modules var request = require('request'); // create text file on disk var filename = Date.now(); // date for filename var fs = require('fs'); // code to make file fs.writeFile("" + filename + ".csv", "", function(err) […]