gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 22:00:25 30 4
gpt4 key购买 nike

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

var fs = require('fs');
var data = fs.readFile("abc.jpg", "binary");

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

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


我的文件结构是:

ExpressApp1/
app.js
routes/
members.js

在 members.js 我有一个 fs.createWriteStream("abc") 和文件 abcExpressApp1/

最佳答案

这是 Node 解释器启动的目录(也就是当前工作目录),而不是脚本文件夹位置的目录(谢谢 robertklep)。

另外,当前工作目录可以通过:

process.cwd()

更多信息,您可以查看:https://nodejs.org/api/fs.html

编辑:因为您在 ExpressApp1 目录中通过 node app.js 启动 app.js,所以每个相对路径都将相对于“ExpressApp1”文件夹,这就是为什么 fs.createWriteStream("abc") 将创建一个写入流以写入 ExpressApp1/abc 中的文件。如果要写入ExpressApp1/routes/abc,可以将members.js中的代码改成:

fs.createWriteStream(path.join(__dirname, "abc"));

更多:

https://nodejs.org/docs/latest/api/globals.html#globals_dirname

https://nodejs.org/docs/latest/api/path.html#path_path_join_paths

关于node.js - fs 模块函数使用的当前目录是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42972785/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com