gpt4 book ai didi

javascript - 如何访问 Node 模块中具有相对路径的文件?

转载 作者:行者123 更新时间:2023-11-30 12:01:55 25 4
gpt4 key购买 nike

我正在使用 node.js + express 构建应用程序,但出现文件目录错误。

我的 /app/lib/tests 文件夹中有一个名为 ajax.js 的测试文件。我的 app.js 文件在我的根 /app 目录中。这是给我带来麻烦的 app.js 文件的片段:

https.createServer({
key: fs.readFileSync('./security/keys/localhost.key'),
cert: fs.readFileSync('./security/keys/localhost.crt')
}, app).listen(https_port);

在我的 ajax.js 文件中,我需要我的 app.js 文件:

var server = require('../../app');

问题是它给我这个错误:

Error: ENOENT: no such file or directory, open './security/keys/localhost.key' 这告诉我文件目录没有正确排列。如果我更改

,我的 ajax.js 文件会工作

错误:ENOENT:没有这样的文件或目录,打开“./security/keys/localhost.key”

错误:ENOENT:没有这样的文件或目录,打开 '../../security/keys/localhost.key'

但是,这会破坏我的应用程序的整体性能。

有没有办法让 app.js 的文件目录传播到 ajax.js?

提前致谢!

最佳答案

使用require.resolve() 解析所需模块上下文中的路径,并使用解析后的路径访问文件系统:

https.createServer({
key: fs.readFileSync(require.resolve('./security/keys/localhost.key')),
cert: fs.readFileSync(require.resolve('./security/keys/localhost.crt'))
}, app).listen(https_port);

关于javascript - 如何访问 Node 模块中具有相对路径的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36434848/

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