2016-11-08 1 views
0

ローカルにnpmをインストールし、Bower、Grunt、Polymer & Yeomanをインストールするために使用しました。しかし、私はまだNode.jsが実際に何であるかについて少し混乱しています。Node.jsアプリケーションをdepolyする方法

私はApacheサーバーをローカルに設定していましたが、phpMyAdminをインストールして自分のプロジェクトで作業するようになりました。私はその後、SQLデータベース&を、php、html、cssなどのファイルを含む私のプロジェクト用のファイルディレクトリ全体を取得し、私のサーバにアップロードして実行することができました。

私は、PHPがこれ以上行く方法ではないことに気がつきました。そして、誰もがAngular、Backbone & EmberのようなJSフレームワークを動かすように縫い合わせています。またPolymerは面白そうですが、

私の質問はです。node.jsで構築されたものはどのように配備しますか?例えばAngular、Backbone、EmberまたはPolymerで作成されたダッシュボードのWebサイト/アプリです。

SQLはもはや行く方法ではないと推測していますが、PouchDBやMongoなどのnoSQLオプションはありますか?私は本当に人々がこれらの新しいフレームワークを使ってデータを保存するのを、おそらく彼らはまだSQLを使用しているのか分からないのですか?

PHP & SQLのプロセスをコピーして、SQLデータベース&をアップロードして、ファイルdirをアップロードしてサーバー上で実行できますか?

私はポリマーウェブサイト/アプリを展開するためにfirebaseを使用しましたが、firebaseまたはherokuの代わりに標準のウェブホストを使用できるかどうかを知りたいと思います

+0

この質問は広すぎます。 SOは聞くべき場所ではありません。 See [ask]。 –

+1

あなたは、ノードを試してみたい理由を言及していないアプリを配備する方法を尋ねてきたはずです。なぜなら、あなたの理由は変わっているのですが、w/eで、私たちが常に正しい場合、世界は吸ってくれるでしょう。 –

+0

私はそれが少し広いかもしれないと思った。私は再び書き直して投稿しなければならないのですか? –

答えて

2

これについては、2つの一般的な方法があります。 クライアントアプリサーバアプリの点でそれらを考えることができます。

サーバー

あなただけのNode.jsサーバーを作成している場合は、サーバーを初期化するために(Node.jsののhttpのラッパーです)ライブラリExpressを使用することもできます。次に、ソースコードをAWS EC2またはHeroku(例として)にアップロードするときに、起動スクリプトにサーバーを呼び出すように指示します(サーバー初期化コードが./server.jsの場合、EC2またはHerokuスクリプトnode server.jsを実行する)。例えば、バウアーとのWebPACK:

クライアントアプリ

は、Node.jsのでは動作し、その多くのクライアントアプリケーション(静的サイト)、コンパイルするためのツールがたくさんあります。この場合、Node.jsはこのビルドツールを実行し、あなたのためにアプリケーションをコンパイルする責任を負います。次に、コンパイルされた静的ファイルをホスティングプロバイダにコピーするだけです(AWS S3など)。答えの範囲外ですが、CodeshipやCircleCIなどの継続的な統合ツールを使用して、静的ファイルをコンパイルしてホスティングプロバイダに自動的にアップロードすることができます。

ハイブリッド

あなたはHerokuのは、静的なサイトを提供したい場合は、Node.jsのは、実際に静的ファイルにを提供していますサーバーを実行している方法でそれを設定することができます。上記の2つのアプローチの組み合わせです。これは、静的コンテンツの配信を担当するNode.jsの内部にhttpというサーバーを実際に実行する必要があるためです。同じ場所にAPIサーバーを組み込むこともできますが、共通の方法は別のAPIサーバーを別の場所に置くことです(懸念事項の分離)。

カップル追加コメント:

は、SQLはもう進むべき道ではないだろうが、NOSQLオプションは、このようなPouchDBやモンゴとして、でしょうか?

偽。 SQLとNoSQLの両方にメリットがあります。これは範囲外ですが、上位レベルでは、スキーマ(データベースサーバーまたはクライアントサーバーで管理されているかどうか)、操作がジョインなど(スケーラビリティになる)、および各個人の機能たとえば、RedshiftはPostgresに基づいたSQLデータベースで、巨大なデータセット全体の合計操作を実行するのに適したカラム型ストレージを使用します。それにはNode.jsドライバがあります。あなたは毒を選ぶだけです。

firebaseまたはherokuの代わりに標準のWebホストを使用できるかどうかを知りたいと思います。

本質的にすべてのホスティングプロバイダが同じことを行うため、コンテンツを配信するという意味で、「標準」という用語を使用するホストは参照しません。 Node.jsを使用している場合、プロバイダのホスティングにはAWS S3、AWS EC2、Heroku、Bluehost、その他多数のプロバイダがあります。

+1

ありがとうございます。それは本当に私のために物事をクリアしています!クライアントアプリケーションの例を見て、Angluarに組み込まれていると言うことができます。どのようにデータを保存するのですか?あなたが言及しているホスティングプロバイダには、SQLまたはnoSQLデータベースのオプションがありますか? –

+0

@ JamesKing、問題ありません、うれしそうに助けて! –

+0

@JamesKingええ、ちょうどあなたがそれをどのように保存したいかによって決まります。たとえば、MongoDBのクラウドプロバイダがあります。 Herokuを使用する場合は、MongoDB、Postgresなどのすべての種類のデータベースを追加することができます。 –

-1

ファイルが変更されたときにnpm init(または起動スクリプトが何であれ)を自動的に呼び出すスクリプトを作成しない限り、単にファイルをコピーすることはできません。

サーバーにシェルアクセス権がある限り、おそらくApacheやnginxをノードアプリケーション用のリバースプロキシとして使用し、gitを使ってpush-to-deployシステムを簡単にセットアップできます。

関連する問題