node.js - NODE JS - 永远的启动路径问题

标签 node.js forever

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

相关文章:

button - NetLogo: "stop"不能永远从另一个程序按钮吗?

node.js - 启动时在 Docker 容器中创建环境变量

node.js - 永远使用 npm start 和环境变量

javascript - 如何在 jimp 中将图像从 png 转换为 jpg?

node.js - MongoDB 与 Nodejs(Express) : Delete a property in a document's array

node.js - 使用 bookshelf.js,如何自动更新模型记录?

node.js - 在某些情况下,我可以永远阻止重新启动我的 Node 脚本吗?

node.js - 错误: EACCES: permission denied with forever

node.js - heroku 中的 "HMR is not enabled for webpack-dev-server "错误

javascript - Jest 模拟函数返回未定义而不是对象