2017-08-04 7 views
0

私のサーバーとその構造の解決策を探しています。私がやりたいことは分かれています。Node.js Express Serverのサイド構造

app.post("/login", function(request, response) { 
}); 

app.post("/register", function(request, response) { 
}); 

app.get("/", function(request, response) { 
}); 

に異なるファイルに変換します。私の場合、彼らはすべて "server.js"というファイルに入っています。どのようにしてそれらを分離してより良いものにすることができますか?そして同時にすべてを実行します。私はこの状況を探し出し、このケースのさまざまなタイプを見つけました。しかし、明確な答えを得ることができませんでした。

+1

[ルートハンドラを複数のファイルに含めるにはどうすればいいですか?](https://stackoverflow.com/questions/6059246/how-to-include-route-handlers -in-multiple-files-in-express) – jsalonen

+0

でも可能な答え:https://stackoverflow.com/questions/33946972/how-to-split-node-js-files-in-several-files – jsalonen

+0

私はあなたのルートをすべて1つのファイルであるが、それらのルートが異なるファイル内の関数を呼び出すようにする。そうすれば、すべてのルーティングが1か所で行えますが、ビジネスロジック機能を分離することができます。 – Matthew

答えて

4

あなたができることの1つは、エクスプレス機能に「ルータ」を組み込むことです。

ここでは、私がそれを行う方法の小さなサンプルです。これはあなたが非常にすればいいことができます

import login from "./routes/login"; 
app.use("/login", login); 

login.js

const router = express.Router(); 
router.route("/") //this points to the root route of /login 
    .post((req, res) => { 
     //post function here 
    }) 
    .get((req, res) => { 
     //get function here 
    }) 

server.js(恥知らずなプラグは、より完全な詳細なルータhereのための私のゲームのソースコードを表示して自由に感じます)ルーターを別のファイルに分割する(ルートに格納する)。

app_root 
----routes 
--------login.js 
----server.js 

これはファイルアーキテクチャでどのように見えるかという基本的な構造です。非常にきれいで、モジュール化が非常に簡単です。スターリングアーチャーことによって、上記のコメントのよう

+0

これはIMOが最適なソリューションです。基本的に1つのファイルに記述されたルーティングである 'server.js'を見ることができますが、関数/ビジネスロジックを論理的な部分に分割することもできます。 – Matthew

1

、我々は同様に我々の開発のための同様のフォルダ階層を使用し

server.js (node http server) 
app/ 
    | app.js (express app) 
    | api/ 
    | router.js (express master router to handler "/" 
    | exampleApi/ 
      | exampleRouter.js (routes for example api) 

PS:私たちは私たちの yaoeman generator npmjs linkのためのフォルダ構造の上に生成するyoeman発電機の下に使用 、 yo-dodan git repo (ファイル構造の考え方)

関連する問題