标签: fs

nodejs fs eacces permission

我刚刚遇到fs读取文件的奇怪问题.

我从部署管理器(strongloop strong-pm)运行节点应用程序作为以下用户"strong-pm".

无论我给文件赋予什么权限,我都试图打开节点应用程序,我明白了

return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);

worker:1 Error: EACCES, permission denied '/root/my_dir/file.txt'
    at Object.fs.openSync (fs.js:432:18)
    at Object.fs.readFileSync (fs.js:286:15)
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一切:
sudo chown -R strong-pm:strong-pm /root/my_dir
sudo chmod -R 777 /root/my_dir
sudo chmod 777 /root/my_dir/file.txt
将strong-pm
添加到组中,然后将该组添加到目录中......

仍然没有运气..任何想法?

谢谢!


系统:DigitalOcean上的Ubuntu 14.04 x64

permissions ubuntu fs node.js

6
推荐指数
1
解决办法
3641
查看次数

如何使用节点 js 更改文件中的特定行?

我想使用带有 fs 模块的节点 js 更改文本文件中的特定行。

有没有比将文件加载到数组更优雅的方法?

旧文件:

Line 1
Line 2
Line 3
Run Code Online (Sandbox Code Playgroud)

新文件:

Line 1
something new
Line 3
Run Code Online (Sandbox Code Playgroud)

感谢您的回复!

file fs node.js

6
推荐指数
1
解决办法
3962
查看次数

`fs.mkdir` 正在创建具有与指定权限不同的权限的目录

由于我的节点程序使用的模块,它需要 root 才能运行。这是因为它必须在端口 80 上运行 HTTP 服务器(正如您所知,像这样的较低端口需要 root 才能使用)。

但是,该程序还使用一种fs方法来创建文件。我不介意 root 是否是所有者,只要我可以更改权限......但这正是我遇到的障碍。

我正在使用该fs.mkdir函数创建一个目录,如下所示:

(假设这个文件名为create.js

fs.mkdir(__dirname + "/.loud", 0777, function(err){
  if (err) console.log("Failed to create file at " + __dirname + "/.loud");
});
Run Code Online (Sandbox Code Playgroud)

当执行它时(记住,通过 sudo,sudo node create.js)它实际上创建了文件夹...但是提供的权限(0777)是错误的!...

如果我没记错的话,7意味着读、写和执行。将它用于 3 个字段(777+ a 前导0将其表示为八进制)应该意味着每个人都可以在该文件夹内读取、写入和执行...但是这是我在检查文件夹权限时得到的结果:

fs.mkdir(__dirname + "/.loud", 0777, function(err){
  if (err) console.log("Failed to create file at " + __dirname + "/.loud");
});
Run Code Online (Sandbox Code Playgroud)

因此,让我们分开开始的权限部分:

[imac] jamen : ~/Tests/mkdir …
Run Code Online (Sandbox Code Playgroud)

unix permissions fs node.js

6
推荐指数
1
解决办法
8067
查看次数

createReadStream end 在数据处理完成之前触发

我正在尝试执行以下操作:

  1. 逐行流式传输 csv 文件。
  2. 修改每一行中包含的数据。
  3. 流式传输和处理所有行后,完成并继续下一个任务。

问题是.on("end").on("data")处理完每一行之前触发。处理完所有行.on("end")后如何触发.on("data")

下面是我正在谈论的一个简单的例子:

import parse from 'csv-parse'; 

var parser = parse({});

fs.createReadStream(this.upload.location)
.pipe(parser)
.on("data", line => {
  var num = Math.floor((Math.random() * 100) + 1);
  num = num % 3;
  num = num * 1000;
  setTimeout( () => { 
    console.log('data process complete');
  }, num);
})
.on("end", () => {
   console.log('Done: parseFile');
   next(null);
});
Run Code Online (Sandbox Code Playgroud)

提前致谢。

javascript csv stream fs node.js

6
推荐指数
1
解决办法
3564
查看次数

从node fs模块中的绝对路径读取本地文件

我正在尝试使用 Node js 'fs' 模块从本地系统读取文件。但由于某种原因,当我传递绝对路径时,“fs”模块不起作用。

代码:

let filePath = "/home/mysystem/dev/myproject/sayHello.txt";
let newFile=fs.readFileSync('file://'+filePath);
Run Code Online (Sandbox Code Playgroud)

该代码抛出错误,如下所示:

Uncaught Error: ENOENT: no such file or directory, open 'file:///home/mysystem/dev/myproject/sayHello.txt'
Run Code Online (Sandbox Code Playgroud)

但我可以使用相同的路径从浏览器窗口打开该文件。如果我传递相对路径,fs 模块就可以工作。我在使用电子框架构建的应用程序中使用它。

javascript fs node.js npm electron

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

从 URL 获取 blob 并写入文件

我正在尝试fetch从服务器获取一些二进制数据 (MP3),然后将其存储在一个文件中:

var fs = require ('fs');
var fetch = require ('node-fetch');

fetch (
   audioUrl,
   {
      method: 'GET',
      headers: { 'Accept': '*/*' }
   }
)
.then ((res) => res.blob())
.then ((blob) => {
    console.log ('Blob size: ', blob.size);

    fs.writeFile (
        `filename.mp3`,
        blob,  // BUG HERE
        (err) => {
            if (err) {
                console.log (`Error writing audio ${audioIdx}`, err);
            }
        }
    );
})
Run Code Online (Sandbox Code Playgroud)

问题标记为BUG HERE。我将一个 blob 传递给fs,它不理解 blob,只是简单地写入[object Blob]. 我还尝试了以下方法:

blob                                // writes [object …
Run Code Online (Sandbox Code Playgroud)

blob fs node.js fetch-api

6
推荐指数
2
解决办法
7786
查看次数

Nodejs 读取文件 ENAMETOOLONG

我正在尝试使用const config = fs.readFileSync(configFilePath,'utf8');

但它实际上返回了一个错误,如下所示:

fs.js:663
  return binding.open(pathModule.toNamespacedPath(path),
                 ^

Error: ENAMETOOLONG: name too long, open '/Users/akshaysood/Blockchain/fabricSDK/dist/name: "Network"
version: "1.0"
Run Code Online (Sandbox Code Playgroud)

我尝试读取的文件可在https://hastebin.com/ubaq​​akixit.http上找到

我是新来的node.js。如果有人知道这个错误请告诉我

fs node.js

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

Angular - 如何在没有 fs 的情况下检查文件是否存在

自 Angular 6 以来,似乎fs 不再起作用了, 我还没有找到检查文件是否存在的替代方法。在我的特殊情况下,我必须检查资产文件夹中是否存在特定的图像文件,例如:

if (fileExists('path')) { doSomething(); }
Run Code Online (Sandbox Code Playgroud)

我尝试安装file-exists 包,但这使用

const fs = require('fs')
const path = require('path')
Run Code Online (Sandbox Code Playgroud)

Angular 7 显然不支持它。

有人可以帮忙吗?多谢。

fs typescript angular7

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

在nodejs中将数组写入CSV

我正在尝试使用节点中的模块将数组写入 CSV fs。每次这样做时,都会因为数组中的逗号而创建新列。我怎样才能在不创建新列的情况下执行此操作 - 数组应该包含在列中。我的代码如下。

const fs = require('fs');
const writeStream = fs.createWriteStream('data.csv');
writeStream.write(`brands \n`);
writeStream.write(`${brands}\n`);
Run Code Online (Sandbox Code Playgroud)

该数组只是一个字符串列表:var brands = ["h2O, "glycerin", "cetyl", "ethylhexanoate"]

csv arrays fs node.js

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

尽管安装了 npm,Gatsby 还是找不到 fs

我上线了:

  • Ubuntu 16.04
  • 盖茨比 CLI 版本:2.7.14
  • 盖茨比版本:2.13.21
  • 节点 v10.16.0
  • 新公共管理 6.10.1

我正在关注 Gatsby 教程“7. 以编程方式从数据创建页面”。我无法解决此错误:

This dependency was not found:
?
* fs in ./node_modules/electron/index.js,
?
To install it, you can run: npm install --save fs
Run Code Online (Sandbox Code Playgroud)

我已经跑npm install --save fs了,然后又试了一次。但是会出现同样的错误。目录的权限设置为a+rwx,到目前为止一切都安装得很好。

当我将此代码添加到 gatsby-node.js 时会发生此错误,如教程所述:

const { createFilePath } = require(`gatsby-source-filesystem`)

exports.onCreateNode = ({ node, getNode }) => {
  if (node.internal.type === `MarkdownRemark`) {
    console.log(createFilePath({ node, getNode, basePath: `pages` }))
  }
}
Run Code Online (Sandbox Code Playgroud)

我运行时的完整事件流程gatsby develop -p …

fs node.js npm gatsby

6
推荐指数
1
解决办法
2323
查看次数

标签 统计

fs ×10

node.js ×9

csv ×2

javascript ×2

npm ×2

permissions ×2

angular7 ×1

arrays ×1

blob ×1

electron ×1

fetch-api ×1

file ×1

gatsby ×1

stream ×1

typescript ×1

ubuntu ×1

unix ×1