标签: fs

fs模块函数使用的当前目录是什么?

fs在典型的node.js/Express应用程序中调用模块中的方法时,当前目录是什么?例如:

var fs = require('fs');
var data = fs.readFile("abc.jpg", "binary");
Run Code Online (Sandbox Code Playgroud)

用于定位abc.jpg的默认文件夹是什么?它是否依赖于包含脚本的文件夹位置?

有查询当前目录的方法吗?


我的文件结构是:

ExpressApp1/
           app.js
           routes/
                 members.js
Run Code Online (Sandbox Code Playgroud)

在members.js中我创建了一个fs.createWriteStream("abc")和文件abcExpressApp1/

fs node.js express

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

从url下载文件并将其上传到AWS S3而不保存 - node.js

我正在编写一个从URL下载图像的应用程序,然后使用aws-sdk将其上传到S3存储桶.

我以前只是下载图像并将它们保存到磁盘上.

request.head(url, function(err, res, body){

    request(url).pipe(fs.createWriteStream(image_path));

});
Run Code Online (Sandbox Code Playgroud)

然后像这样将图像上传到AWS S3

fs.readFile(image_path, function(err, data){
    s3.client.putObject({
        Bucket: 'myBucket',
        Key: image_path,
        Body: data
        ACL:'public-read'
    }, function(err, resp) {
        if(err){
            console.log("error in s3 put object cb");
        } else { 
            console.log(resp);
            console.log("successfully added image to s3");
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

但我想跳过将图像保存到磁盘的部分.有什么方法可以pipe将响应request(url)转换为变量然后上传吗?

javascript amazon-s3 fs amazon-web-services node.js

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

未捕获的TypeError:URL不是使用WHATWG URL对象支持电子的构造函数

我试图在这里使用WHATWG URL对象支持读取文件

我收到此错误:未捕获TypeError:URL不是构造函数

这是我的代码:

var fs = require("fs");                                     
const { URL } = require('url');
var dbPath = 'file://192.168.5.2/db/db.sqlite';
const fileUrl = new URL(dbPath);
Run Code Online (Sandbox Code Playgroud)

url fs node.js electron

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

找不到模块:错误:无法解析 React 中的“fs”

我想为我的在线编辑器实现一个 SASS 编译器,为此我想使用 npm 包“node-sass”。但是我收到错误

Module not found: Error: Can't resolve 'fs' in '<MyProjectPath>\node_modules\fs.realpath'.
Run Code Online (Sandbox Code Playgroud)

我已经尝试通过以下方式通过 package.json 禁用该模块:

"browser": {
   "fs": false
}
Run Code Online (Sandbox Code Playgroud)

此外,我找到了另一个通过 webpack 配置运行的解决方案,为此,我config-overrides.js使用 npm 包“”在我的根目录中创建了一个包含以下内容的文件“ react-app-rewired”:

module.exports = function override(def_config, env) {
  return {
    ...def_config,
    webpack: (config) => {
      config.resolve = {
        ...config.resolve,
        fallback: {
          "fs": false,
        }
      }
      return config
    },
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,这也不能解决我的错误。有谁知道我该如何修复这个错误?我还希望了解有关如何将 SASS(作为字符串)编译为 CSS(使用 ReactJS)的替代建议。

我当前的package.json:

{
    "name": "client",
    "version": "0.1.0",
    "private": true,
    "proxy": "http://localhost:3001",
    "dependencies": {
        "@codemirror/lang-javascript": "^0.19.3",
        "@testing-library/jest-dom": "^5.16.1",
        "@testing-library/react": …
Run Code Online (Sandbox Code Playgroud)

fs reactjs node-sass

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

如果文件不存在,则fs.statSync会引发错误

我试图确定文件是否存在.如果它不存在,我希望我的代码继续,以便它将被创建.当我使用以下代码时,如果该文件存在,则打印出"它存在".如果它不存在,它会崩溃我的应用程序.这是我的代码:

var checkDuplicateFile = function(){
    var number = room.number.toString();
    var stats = fs.statSync(number);
    if(stat){
        console.log('it exists');
    }else{
        console.log('it does not exist');
    }

};
Run Code Online (Sandbox Code Playgroud)

fs node.js

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

与fs和蓝鸟的承诺

我目前正在学习如何在nodejs中使用promises

所以我的第一个挑战是列出目录中的文件,然后使用异步函数获取每个步骤的内容.我提出了以下解决方案,但有一种强烈的感觉,这不是最优雅的方式来做到这一点,尤其是我将异步方法"转变"为承诺的第一部分

// purpose is to get the contents of all files in a directory
// using the asynchronous methods fs.readdir() and fs.readFile()
// and chaining them via Promises using the bluebird promise library [1]
// [1] https://github.com/petkaantonov/bluebird 

var Promise = require("bluebird");
var fs = require("fs");
var directory = "templates"

// turn fs.readdir() into a Promise
var getFiles = function(name) {
    var promise = Promise.pending();

    fs.readdir(directory, function(err, list) {
        promise.fulfill(list)
    })

    return promise.promise;
}

// turn fs.readFile() into a Promise …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous fs node.js bluebird

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

如何在Node.js中同步读取文件内容?

这就是我所拥有的:

#! /usr/bin/env node

var fs = require('fs'),
    files = fs.readdirSync(__dirname + '/files/'),

files.forEach(function(file) {
  fs.readFile(__dirname + '/files/' + file, 'utf8', function (error, data) {
    console.log(data)
  })
})
Run Code Online (Sandbox Code Playgroud)

即使我使用readdirSync输出仍然是异步的:

alex@alex-K43U:~/node/readFiles$ node index.js 
foo 1

foo 3

foo 2
Run Code Online (Sandbox Code Playgroud)

如何修改代码使输出变得同步?

alex@alex-K43U:~/node/readFiles$ node index.js 
foo 1

foo 2

foo 3
Run Code Online (Sandbox Code Playgroud)

javascript fs node.js

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

模块内的相对文件系统写入路径

我有一个可执行节点/ javascript脚本,它有一个调试布尔值,如果设置为true,将写入几个文件.此可执行文件也是节点模块.根据运行脚本的用户的工作目录,似乎该函数找不到要将文件写入的目录.

该模块的结构如下

output/
lib/
    helpers.js
index.js
Run Code Online (Sandbox Code Playgroud)

我最初的推理是拥有这条道路.

helper.write = function(data,filename){
    if(typeof data !== "string") data = JSON.stringify(data);
    fs.writeFileSync("./output/"+filename, data);
};
Run Code Online (Sandbox Code Playgroud)

但是,这在node_module文件夹中运行脚本时有效

fs.writeFileSync("process.cwd()+"/node_modules/the_module/output/"+filename, data);
Run Code Online (Sandbox Code Playgroud)

像这样

node ./my_app/node_modules/the_module/index.js
Run Code Online (Sandbox Code Playgroud)

如果模块在另一个使用该库的可执行文件中使用,则会更加混乱.

node ./my_app/run.js
Run Code Online (Sandbox Code Playgroud)

有没有办法独立于所有这些变量保存文件?

path relative-path fs node.js

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

Webpack nodejs fs.readFile不是一个函数

我有一个webpack配置,如:

var path = require('path')

module.exports = {
    entry: "./index.js",
    output: {
        path: path.join(__dirname, 'static'),
        filename:'bundle.js'
    },
    module: {
        loaders: [
            { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader"},
            { test: /\.json$/, loader: 'json-loader' },
        ]
    },
    node: {
      fs: "empty"
    }
};
Run Code Online (Sandbox Code Playgroud)

我想用文件阅读文件 fs

我做的事情如下:

var fs = require('fs')
console.log(fs)

fs.readFile('input.txt', function (err, buffer) {
        console.log("buffer")
        console.log(buffer)


    })
Run Code Online (Sandbox Code Playgroud)

我只是想在这里阅读一个文件,但是当我这样做时它给了我一个错误说:

fs.readFile 不是一个功能

我已经安装fs使用npm install --save fs

另外,当我打印fs它给我空对象.我上面做的console.log(fs)就是给我空物

这里有什么问题?

fs node.js webpack

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

Node.js:如何在没有上传文件列表的情况下检查文件夹是否为空

我在用Node.js.

我想检查文件夹是否为空?一种选择是使用fs.readdir,但它将整堆文件加载到一个数组中.我在该文件夹中有超过10000个文件.加载文件名仅用于检查文件夹是否为空.所以寻找替代解决方案.

directory file fs node.js

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