一種簡單的生產環境部署Node.js程式方法

來源:互聯網
上載者:User

標籤:實現   UI   環境配置   資訊   top   var   javascrip   命令   程式碼   

最近在部署Node.js程式時,寫了段簡單的指令碼,發覺還挺簡單的,忍不住想與大家分享。

設定檔

首先,本地測試環境和生產環境的資料庫連接這些配置資訊是不一樣的,需要將其分開為兩個檔案儲存體 到config目錄下,比如:

開發環境設定檔config/development.js

module.exports = {  port:  3001,  mysql: {    user: ‘root‘  }};

生產環境設定檔config/production.js:

module.exports = {  port: 80,  mysql: {    user: ‘myapp‘,    password: ‘2zbonsjzl305vkh3‘  }};

另外還要建立一個程式自動載入相應環境的配置,檔案config/index.js

var path = require(‘path‘);// 通過NODE_ENV來設定環境變數,如果沒有指定則預設為生產環境var env = process.env.NODE_ENV || ‘production‘;env = env.toLowerCase();// 載入設定檔var file = path.resolve(__dirname, env);try {  var config = module.exports = require(file);  console.log(‘Load config: [%s] %s‘, env, file);} catch (err) {  console.error(‘Cannot load config: [%s] %s‘, env, file);  throw err;}

假設應用的入口檔案是app.js,可通過以下方法載入配置:

var config = require(‘./config‘);console.log(‘listen on port %s‘, config.port);// 如果是開發環境,將輸出 listen on port 3001// 如果是生產環境,將輸出 listen on port 80
本地開發測試

為了方便,我建立一個指令檔run,代碼如下:

export NODE_ENV=developmentnode app

要啟動程式,直接在命令列下執行./run即可。

部署應用

建立部署指令檔deploy,代碼如下:

git reset --hardgit pull origin HEADnpm installpm2 stop myapp -fpm2 start app.js -n myapp

此段代碼會自動拉去git倉庫中最新的一次提交的代碼,並使用npm來安裝package.json中列出的模組, 然後先停止之前已啟動的應用執行個體,再啟動。

為了方便傳輸代碼到伺服器端,需要將程式碼提交到一個私人的git倉庫,首次在伺服器端部署時, 需要先將代碼clone到伺服器端,比如:

git clone git[@github](/user/github).com:leizongmin/node-uc-server.git ~/myapp

應用在伺服器端運行時使用pm2工具來管理進程,所以還需要先在伺服器上安裝此工具:

npm install pm2 -g

完成以上準備工作後,我們就可以通過deploy指令碼來實現自動更新代碼:

  • 將本地修改提交到遠程git倉庫
  • 登入伺服器,進入~/myapp目錄
  • 執行./deploy

以上程式執行的環境為Linux,如果開發環境是Windows,需要將run檔案改為以下代碼:

set NODE_ENV=developmentnode app

一種簡單的生產環境部署Node.js程式方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.