2016-09-11 2 views
2

Я пишу экспресс-сервер 4 api без кода внешнего интерфейса. Я решил структурировать свой проект, чтобы структура папок была основана на бизнес-логике проекта, а не на нем, в зависимости от типа файла (маршруты, модели и т. Д.).Передача экспресс-приложения в файлы маршрутов

Например, в моей папке пользователя есть мой userRoutes.js, userModel, js, userApi.js, ...

Мой главный вопрос - на самом деле, как передать приложение в файлы маршрутов? Мой любимый подход - делать 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

Вы должны требовать экспресс приложение или перейти к маршрутам файл по преобразования приложений требуют функции, как это:

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

Я думаю, что глобальная переменная не является хорошей идеей.

+0

спасибо в любом случае. Если вы хотите показать мне хорошие проектные структуры, я хотел бы взглянуть на ваших фаворитов. –

Смежные вопросы