[解決済み] Node.js + express Webアプリケーションのパッケージングとデプロイの方法は?
質問
私は Node.js プログラミングの初心者で、最近、express、backbone およびその他の補完的なビュー技術、mongoDB を使用してサンプル動作ウェブ アプリケーションを作成しました。今、私はステージング環境に同じものをデプロイしたいポイントにおり、私はこのアプリケーションをパッケージ化して同じものを配布する方法がわからないです。[私は mongoDb とそれを個別にセットアップすることができます]。
私はJavaの世界から来ました。そこでは、サーブレットコンテナにデプロイされるWebアプリケーションのために、再利用可能なライブラリやwar/earパッケージのためのjarを作成します。この場合、node.js自体がウェブコンテナとして機能するので、どのように私のウェブアプリケーションをパッケージ化すればよいのでしょうか?
- express を使ってビルドした node ウェブアプリケーションをパッケージングするための標準的なフォーマット/ガイドラインはありますか。(node アプリケーションのための同様の jar/war パッケージング システムはありますか?)
- パッケージングした後、どのようにデプロイしますか?それはまた、それ自身のコンテナーであるので、exe になりますか?
PS: 今のところ、私はただ手動で必要なすべてのソースファイルをステージング環境にコピーし、そのマシン上ですべての依存関係をダウンロードするためにnpmコマンドを実行し、それから私のserver.jsを実行するために「永遠」または他のメカニズムを使用しようと考えています。(また、アプリがクラッシュしてforeverが失敗した場合に備えて、何らかの監視を追加します。) これが正しい方法かどうかは分かりませんが?私はこの問題に対処するための何らかの標準的な方法があるはずだと確信しています。
どのように解決するのですか?
標準的な方法はありませんが、正しい方向に進んでいます。もし、あなたの
package.json
が最新でよく保存されているのであれば、アプリのディレクトリを本番システムにコピー/zip/クローンするだけでよく、その際に
node_modules
.
本番システムで
npm install
を実行して、依存関係をインストールします。
npm test
でテスト、そして最後に
NODE_ENV=production node server.js
私がかなり役立つと考えた最近のスライドで、foreverのようなラッパーのトピックも含まれているものがあります。 はこちら .
関連
-
[解決済み] Node.jsのホスト名/IPが証明書のaltnamesと一致しない
-
[解決済み] TypeError: コールバックはnodejsの関数ではありません。
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] Node.jsで終了する方法
-
[解決済み] Node.jsアプリケーションをデバッグするにはどうすればよいですか?
-
[解決済み] Node.jsを完全にアンインストールして、最初から再インストールする方法 (Mac OS X)
-
[解決済み] Node.jsのmodule.exportsの目的と使い方を教えてください。
-
[解決済み] Node.js上のExpress.jsでGET(クエリ文字列)変数を取得する方法とは?
-
[解決済み] Node.jsのnpmモジュールをアンインストールするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】Nodejs: Errorを解決する方法。ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み】Discord.js が特定のチャンネルにメッセージを送信する場合
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み] MongoDB でコレクションを日付順に並べるには?
-
[解決済み] nodeファイルの先頭にある"/usr/bin/env node "は、具体的には何をするのですか?
-
[解決済み] Node.jsで「btoaが定義されていない」エラーが発生する
-
[解決済み] nvm は npm config の "prefix" オプションと互換性がありません。
-
[解決済み] エラー: ノード出力を "|head" にパイプするときに EPIPE を書き込む。
-
[解決済み] "致命的なエラーです。grunt "コマンドを実行すると、"Unable to find local grunt. "と表示されます。