pcwu's TIL Notes


[Node.js] Node.js Openshift Deployment 筆記

執行 Node.js

Openshift 只做兩件事情,就是 npm install --productionnpm start

所以有用到 babel 等工具的話,可能要先 build 好再上傳了。

(把build指令塞在 npm start 應該也是可行的,沒試過)

查看 error log

檔案分別在 app-root/logs/nodejs.logapp-root/logs/mongodb.log

環境參數

Node.js

MongoDB

設定 Node.js Server

一般很多人在啟動 server 時,習慣只有給 port,像這樣

app.listen(PORT, () => {
    console.log(`Listening on port ${PORT}`);
});

但 Openshift 不填入 IP 會報錯,所以要變這樣:

app.listen(PORT, IP, () => {
    console.log(`Listening on port ${PORT}`);
});

連線 MongoDB

帳號、密碼、IP、PORT 跟資料庫名稱都要一起放入,所以就是這樣:

mongodb://admin:ZlM5DLCRt-htJ@${process.env.OPENSHIFT_MONGODB_DB_HOST}:${process.env.OPENSHIFT_MONGODB_DB_PORT}/app-name

config.js

我的 config.js 長這樣:

const config = {
  DATABASE_URL: `mongodb://admin:ZlM5DLCRt-htJ@${process.env.OPENSHIFT_MONGODB_DB_HOST}:${process.env.OPENSHIFT_MONGODB_DB_PORT}/app-name` || `mongodb://localhost/app-name`,
  IP: process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1',
  PORT: process.env.OPENSHIFT_NODEJS_PORT || 3000,
  ENVIRONMENT: process.env.NODE_ENV || 'development',
};

Reference