从文件夹外部执行Node.js文件中断文件path
我有一个名为“server.js”的Node.js文件。
在脚本中,我打开一些文件,使用如下所示:
var certPem = fs.readFileSync('cert_and_key_dev.pem', encoding='ascii');
使用bash shell,如果我cd到server.js所在的目录,然后运行命令:
[mybashshell] $ node server.js
它工作,我没有错误。 服务器启动并运行。
现在,当我输出server.js文件所在的目录时,再次运行相同的shell命令来启动我的服务器。
它抱怨我的文件path到我的“cert_and_key_dev.pem”被打破。
我并不期待这样的事情发生。 我虽然正在执行的脚本文件中使用的path应该是相对于脚本文件,而不是执行我的bash shell命令的位置。
有任何想法吗?
把这个放在脚本的开头。
process.chdir(__dirname);
这会将进程的工作目录更改为正在执行的文件( __dirname
)的目录path。
有关该函数的更多信息,请阅读。
要么
var path = require('path'); var key = path.join(__dirname, 'cert_and_key_dev.pem'); var certPem = fs.readFileSync(key, encoding='ascii');
如果你不想以任何理由cd
。