NODE JS – 永远的开始path问题

我有一个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 

有趣的是,如果我从任何目录启动服务器的完整path,如:

 forever start /var/www/html/rubrica/chat/server.js 

服务器启动就好..但是,我运行SAME命令从/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'));