运行 Ghost 处于生产模式,在现有节点应用程序中

Run Ghost in production mode, in existing node application

我在现有 Node.js 应用程序中使用 Ghost,配置如下:

 // ### Development **(default)**
    development: {
        // The url to use when providing links to the site, E.g. in RSS and email.
        // Change this to your Ghost blogs published URL.
        url: 'http://localhost:2368/blog',

        database: {
            client: 'sqlite3',
            connection: {
                filename: path.join(__dirname, '/content/data/ghost-dev.db')
            },
            debug: false
        },
        server: {
            // Host to be passed to node's `net.Server#listen()`
            host: 'localhost',
            // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
            port: '2368'
        }
    }

但是,我正在使用 Postgresql 将我的应用程序部署到 Heroku,所以我在这里有一个生产配置:

production: {
        url: 'https://summittalks.herokuapp.com:2368/blog',
        mail: {},
        database: {
            client: 'postgres',
            connection: {
                host: 'MY_HOST',
                user: 'MY_USER',
                password: 'MY_PASS',
                database: 'MY_DB',
                port: 'MY_PORT'
            },
            debug: false
        },

        server: {
            // Host to be passed to node's `net.Server#listen()`
            host: '0.0.0.0',
            // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
            port: '2368'
        },

        fileStorage: false
    }

我正在将 Ghost 加载到我的 Node.js 应用程序中,如下所示:

app.modules.ghost({
    config: app.utilities.path.join(__dirname, '/ghost/ghost.js')
}).then(function(ghostServer){
    app.express.use(ghostServer.config.paths.subdir, ghostServer.rootApp);
    ghostServer.start(app.express);
}).then(function(req,res){
    app.express.get('*', function(req,res){
        res.status(404).send('<h1>404</h1><p>Page not found.</p>');
    });
    app.express.post('*', function(req,res){
        res.status(404).json({error:'Resource not found'});
    });
});

我如何 运行 在生产中使用 Ghost 并告诉 Heroku 这样做?我目前做的:

node server.js dev

到 运行 我的应用程序处于开发模式。如果 "dev" 不存在,那么我的应用程序 运行 处于生产模式。我想为 Ghost 应用类似的逻辑,但我不知道如何将它告诉 运行 in prod.

只需 运行 在您的 Heroku 应用程序目录的根目录中的这一行:

$ heroku config:set NODE_ENV=production