如何访问节点模块中具有相对路径的文件
How to access a file with a relative path in a node module?
我正在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
文件可以工作
Error: ENOENT: no such file or directory, open './security/keys/localhost.key'
至
Error: ENOENT: no such file or directory, open '../../security/keys/localhost.key'
然而,这会破坏我的应用程序的整体。
有没有办法把文件目录从app.js propogate转移到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);
相关文章:
- 可以用'吗/'在相对路径中
- Angular sqlLite set css url()无法设置相对路径
- jquery移动应用程序无法使用jquryMobile框架JS和css文件的相对路径
- node.js需要相对路径
- 相对路径的计算
- 如何访问节点模块中具有相对路径的文件
- 在JQuery中,'加载'方法'的相对路径在引用项目中的html文件时开始
- Javascript中具有fetch的相对路径
- backbone.js在#断开相对路径之前缺少斜杠
- 相对路径中的角度2 img src
- 带有JS点击相对路径的网页URL链接
- 流星 ES6 模块相对路径
- 在不同浏览器中使用 javascript 的相对路径
- 无法加载具有相对路径的 css/js
- SystemJS 相对路径
- 是否可以要求项目目录外部的模块没有相对路径
- 无法使用 Jade 模板包含相对路径文件
- RequireJS 不遵循设置了 baseUrl 的数据主的相对路径
- 如何使用它的相对路径访问tomcat服务器中的文件夹
- jQuery ajax 相对路径未找到文件