Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问节点模块中具有相对路径的文件?_Javascript_Node.js_File_Require - Fatal编程技术网

Javascript 如何访问节点模块中具有相对路径的文件?

Javascript 如何访问节点模块中具有相对路径的文件?,javascript,node.js,file,require,Javascript,Node.js,File,Require,我正在node.js+express中构建一个应用程序,发现一个文件目录错误 我在/app/lib/tests文件夹中有一个名为ajax.js的测试文件。我的app.js文件位于我的root/app目录中。下面是我的app.js文件的一个片段,它给我带来了麻烦: https.createServer({ key: fs.readFileSync('./security/keys/localhost.key'), cert: fs.readFileSync('./security/

我正在node.js+express中构建一个应用程序,发现一个文件目录错误

我在/app/lib/tests文件夹中有一个名为ajax.js的测试文件。我的app.js文件位于我的root/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');
问题是它给了我这个错误:

错误:enoint:没有这样的文件或目录,请打开“/security/keys/localhost.key”,它告诉我文件目录排列不正确。我的ajax.js文件在我更改

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

错误:enoint:没有这样的文件或目录,请打开“../../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);

此文件的绝对路径是什么。/security/keys/localhost.key?