2016-09-11 9 views
2

フロントエンドコードのないexpress 4 apiサーバーを作成しています。私は、フォルダ構造がファイルの種類(ルート、モデルなど)に基づいて行うのではなく、プロジェクトのビジネスロジックに基づいているようにプロジェクトを構造化することを選択しました。エクスプレスアプリをルートファイルに渡す

たとえば、私の主な質問は実際に私のルートファイルにどのようにアプリケーションを渡す必要がありますか?私のお気に入りのアプローチはglobal.appを使ってグローバル化することでしたが、それはベストプラクティスではないと思います。私のビジネスロジックの構造についてアドバイスがあればそれも素晴らしいでしょう。

答えて

1

まず、あなたのファイル構造はトップに聞こえます。物事をきれいに分割する必要がある場合は、それに行きましょう。しかし、私はあなたがそれを酷使しているという愚かさを持っています。

いずれにしても、私が通常行っていることは、各モジュールから返されるミドルウェアです。必要に応じて、各ミドルウェアに独自のExpressルーターを付けることができます。メインアプリケーションで次に

const express = require('express'); 

module.exports = function (config) { 
    const router = new express.Router(); 

    router.get('/something', (req, res) => { 
    // Code here 
    }); 

    return router; 
} 

:モジュールで

const somethingHandler = require('somethingHandler.js'); 

app.use(somethingHandler); 

これはどのように他のすべてのエクスプレスのミドルウェアモジュールの作業をインラインです。これにより、メインアプリでapp.use()コールを使用して、パス別に名前空間を割り当てることもできます。とにかくありがとう。

1

あなたは急行アプリを必要とするか、またはexcuteでroutesファイルに渡す必要がありますが、このような関数が必要になります。

var app = require('express'); 
var userRoutes= require('your route path')(app); 

私はグローバル変数は良いアイデアではないと思います。

+0

あなたが好きなプロジェクトの構造を私に見せたいなら、あなたのお気に入りを見てみたいと思います。 –

関連する問題