标签: fs

Node.js:使用'fs'迭代目录时检查文件是否是符号链接

Supervisor是Node.js的一个程序包,它监视应用程序目录中的文件以进行修改,并在发生修改时重新加载应用程序.

此脚本将符号链接解释为常规文件并注销警告.我想分叉Supervisor,以便完全修复或者产生更具描述性的警告.

如何使用Node.js的文件系统模块来确定给定文件是否真的是符号链接?

linux fs node.js node-supervisor

9
推荐指数
2
解决办法
7511
查看次数

使用node.js保存存储在s3上的图像?

我正在尝试编写一个使用node.js在s3上存储图像的图像服务器.上传图像工作正常,我可以使用s3浏览器客户端正确下载和查看它(我特别使用dragondisk,但我已经成功下载了其他的),但是当我用节点下载它并尝试把它写入磁盘,我无法打开文件(它说它可能已损坏或使用预览无法识别的文件格式).我正在使用amazon sdk进行节点和fs来编写文件.我知道你可以将一个可选的编码传递给fs.writeFile,但我已经尝试了所有这些并且它不起作用.我还尝试在getObject上设置putObject和ResponseContentType上的ContentType,以及在各种组合中设置ContentEncoding和ResponseContentEncoding(以及所有这些内容).结果相同.这是一些代码:

var AWS = require('aws-sdk')
  , gm = require('../lib/gm')
  , uuid = require('node-uui')
  , fs = require('fs');

AWS.config.loadFromPath('./amazonConfig.json');
var s3 = new AWS.S3();

var bucket = 'myBucketName'; // There's other logic here to set the bucket name.

exports.upload = function(req, res) {
    var id = uuid.v4();
    gm.format("/path/to/some/image.jpg", function(format){
        var key = req.params.dir + "/" + id + "/default." + format;
        fs.readFile('/path/to/some/image.jpg', function(err, data){
            if (err) { console.warn(err); }
            else {
                s3.client.putObject({
                    Bucket: bucket,
                    Key: key,
                    Body: data,
                    ContentType: 'image/jpeg' …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 fs node.js

9
推荐指数
2
解决办法
1万
查看次数

Chokidar(Node.js)效率如何?

我在服务器上有一个缓存引擎,它缓存在根目录下访问的所有文件.我正在考虑使用Chokidar来查看整个目录树(递归)以进行文件更改并相应地更新缓存.但我担心如果子目录包含数十万个文件会发生什么 - Chokidar的效率如何?

fs node.js npm

9
推荐指数
1
解决办法
1万
查看次数

在fs.writeFile([option])中,"options parameter"通常如何工作?

我正在阅读有关Node.js文件系统的文档fs.writeFile(filename, data, [options], callback).所以我注意到我经常看到[选项],但从未用过任何东西.有人能举个例子吗?我所有的情况都没有使用这个选项.

fs node.js

9
推荐指数
2
解决办法
2万
查看次数

通过UNC路径在节点中读取/写入文件

在本地计算机上reading/writing遇到UNC路径问题nodeJs.有一次fs从我的机器读取/写入到UNC路径就好了,但现在它似乎无法读/写它.

UNC路径: \\[machine name]\folder1\folder2\file.csv

我一段时间后升级到节点版本12,并认为可能存在网络路径错误,但没有看到任何人在线受到影响.然后我用来nvmw加载旧版本的节点,但仍然没有.

我想知道是不是因为我没有加入同一个域,但是,这不是以前的问题.我可以ping这个盒子,在Windows资源管理器中访问,远程访问.

我尝试运行我的应用程序作为我的用户,作为管理员,在凭证管理器中为网络管理员添加了一个Windows凭据.

试图改变使用许可标志r,r+,a,a+0666 ...

路径尝试

  • \\[machine name]\
  • \\?\[machine name]\
  • \\?\UNC\[machine name]\

写错误

{ 
  [Error: UNKNOWN, mkdir '\\[machine name]\Storage\CSV\Example.csv']
  errno: -4094,
  code: 'UNKNOWN',
  path: '\\[machine name]\Storage\CSV\Example.csv' 
}
Run Code Online (Sandbox Code Playgroud)

读错误

{ 
  [Error: UNKNOWN, open '\\[machine name]\Storage\CSV\Example.csv']
  errno: -4094,
  code: 'UNKNOWN',
  path: '\\[machine name]\Storage\CSV\Example.csv' 
}
Run Code Online (Sandbox Code Playgroud)

我已经浏览了很多实际的fs代码,它似乎最终生成了适当的路径,但似乎没有很好的窗口用于访问UNC路径.

我希望有人可以给我一些要检查的事项或可能的原因.

unc fs node.js

9
推荐指数
1
解决办法
3038
查看次数

如何读取节点js中的csv文件

我试图使用节点js读取csv文件.她是我的代码

fs.readFile(config.csvUploadPath, function read(err, data) {
    if (err) {
        throw err;
    }
    console.log(data + 'my data')
});
Run Code Online (Sandbox Code Playgroud)

安慰:

ID
D11
D33
D55
Run Code Online (Sandbox Code Playgroud)

在这里,我想获取列ID中的元素并将它们存储在数组中.我怎样才能做到这一点?谁能建议我帮忙.谢谢.我的控制器:

var partnersModel = new partners(params);
        fs.readFile(config.csvUploadPath, function read(err, data) {
            if (err) {
                throw err;
            }
        dataArray = data.toString().split(/\r?\n/);
            dataArray.forEach(function(v,i){
                if(v !== 'DUI'){
                  partnersModel.dui.push(v);
                }
            });
        });
        partnersModel.save(function(error, response){
Run Code Online (Sandbox Code Playgroud)

csv fs node.js express meanjs

9
推荐指数
2
解决办法
3万
查看次数

节点 - 无法搜索音频流

我创建了一个简单的服务器,它使用fs模块将mp3文件流式传输到浏览器,该浏览器在html5音频元素中播放它.实际上,音频流完全正常,但是,即使我寻求的部分已经被缓冲,我也无法通过流来寻找.

var express = require('express');
var app = express();
var fs = require('fs');

app.get('/', function (req, res) {
    var filePath = 'music.mp3';
    var stat = fs.statSync(filePath);

    res.writeHead(200, {
        'Content-Type': 'audio/mpeg',
        'Content-Length': stat.size,
    });

    var readStream = fs.createReadStream(filePath);
    readStream.pipe(res);
});
Run Code Online (Sandbox Code Playgroud)

其他类似的Q&As建议添加Content-Range标头,但我找不到如何做到这一点的简单示例.其他人已经说过使用206 Partial-Content标题,但是当我这样做时,音频根本不会播放.

这是一个演示(在Windows上测试Chrome)

audio-streaming fs node.js

9
推荐指数
1
解决办法
1875
查看次数

如何将字符串类型从API响应转换为图像文件 - \u0000\u0010JFIF\u0000\u0001\u0001\u0000\u0000\u0001 -

我使用https://graph.microsoft.com/beta/me/photo/ $ value API来获取outlook用户的个人资料图片.我得到了一个关于在rest-client中运行上述API的图像.API的内容类型是"image/jpg"

但是,在Node.js中,API的响应如下:

????\u0000\u0010JFIF\u0000\u0001\u0001\u0000\u0000\u0001\u0000\u0001\u0000\u0000??\u0000?\u0000\u0005\u0005\u0005\u0005\u0005\u0005\u0006\u0006\u0006\u0006\b\t\b\t\b\f\u000b\n\n\u000b\f\u0012\r\u000e\r\u000e\r\u0012\u001b\u0011\u0014\u0011\u0011\u0014\u0011\u001b\u0018\u001d\u0018\u0016\u0018\u001d\u0018+"\u001e\u001e"+2*(*2<66<LHLdd?\u
Run Code Online (Sandbox Code Playgroud)

我用'fs'来创建一个图像文件.代码如下:

const options = {  
    url: "https://graph.microsoft.com/beta/me/photo/$value",
    method: 'GET',
    headers: {
        'Accept': 'application/json',
        'Authorization': `Bearer ${locals.access_token}`,
        'Content-type': 'image/jpg',
    }
};

request(options, (err, res, body) => {  
    if(err){
        reject(err);
    }
    console.log(res);
    const fs = require('fs');
    const data = new Buffer(body).toString("base64");
    // const data = new Buffer(body);
    fs.writeFileSync('profile.jpg', data, (err) => {
        if (err) {
            console.log("There was an error writing the image")
        }
        else {
            console.log("The file is written successfully");
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

文件写入成功,但.jpg …

javascript fs node.js microsoft-graph

9
推荐指数
1
解决办法
898
查看次数

FS节点删除除与名称匹配的文件外的所有文件

我需要删除目录中除我指定名称的文件之外的所有文件。比方说:

fs.unlink('./all except specialfile.txt', (err)) => {
    if (err) throw err;
    console.log('file deleted!');
}
Run Code Online (Sandbox Code Playgroud)

fs node.js

8
推荐指数
1
解决办法
3808
查看次数

fs.writeFile 在写入第一个 json 文件后导致节点应用程序崩溃

我试图爬行几个网页来检查损坏的链接并将链接的结果写入 json 文件,但是,在第一个文件完成后,应用程序崩溃,没有弹出错误...

我使用 Puppeteer 进行爬行,使用 Bluebird 来同时运行每个链接,使用 fs 来写入文件。

我尝试过什么:

  • 将文件类型切换为“.txt”或“.php”,这可行,但我需要在当前工作流程之外创建另一个循环,以将文件从“.txt”转换为“.json”。在写入文件后立即重命名该文件也会导致应用程序崩溃。
  • 对 fs.writeFile 使用 try catch 语句但它永远不会引发错误
  • Express之外的整个应用程序,这在某些时候有效,但我尝试在框架内使用它
const express = require('express');
const router = express.Router();
const puppeteer = require('puppeteer');
const bluebird = require("bluebird");
const fs = require('fs');

router.get('/', function(req, res, next) {
    (async () => {
        // Our (multiple) URLs.
        const urls = ['https://www.testing.com/allergy-test/', 'https://www.testing.com/genetic-testing/'];
    
        const withBrowser = async (fn) => {
            const browser = await puppeteer.launch();
            try {
                return await fn(browser);
            } finally {
                await browser.close();
            } …
Run Code Online (Sandbox Code Playgroud)

fs node.js promise bluebird puppeteer

8
推荐指数
0
解决办法
989
查看次数