我有一个 server.js 文件定义如下:
var iniparser = require('iniparser');
var inihost;
var inidbuser;
var inidbpass;
var inidbname;
var config = iniparser.parseSync('../setup_db/config.ini');
inihost = config.db_hostname;
inidbuser=config.db_username;
inidbpass=config.db_password;
inidbname=config.db_name;
.....
重新启动时,我有一个 crontab,它应该自动永远启动服务器:
@reboot /usr/bin/sudo /usr/local/bin/forever start /var/www/html/rubrica/chat/server.js
有趣的是,如果我从具有完整路径的任何目录启动服务器,例如:
forever start /var/www/html/rubrica/chat/server.js
服务器启动得很好..但是,如果我从/root/.forever/ 目录中运行相同的命令,服务器将给出以下错误:
ENOENT, no such file or directory '../setup_db/config.ini'
所以每当我重新启动机器时,我都会收到该错误......这样的事情怎么可能?
最佳答案
iniparser.parseSync()
的参数不像 require()
那样相对于当前文件,而是相对于当前工作目录。使用:
var path = require('path');
var config = iniparser.parseSync(path.join(__dirname, '../setup_db/config.ini'));
关于node.js - NODE JS - 永远的启动路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24200697/