Лучшая компоновка, экспресс, передача приложения и объекта ввода-вывода в маршруты - PullRequest
0 голосов
/ 17 октября 2018

Я работал в экспрессе и пытался реализовать лучшую структуру для проекта, как было бы возможно восстановить макет и поместить все маршруты в отдельную папку.На данный момент структура моей папки выглядит как

import express from 'express';
const app = express()
app.get('/', (req, res) => {
    res.send('Hello World')
})
app.listen(5656, () => {
    console.log('http://localhost:5656')
})

Просто фиктивный пример, но предположим, что я хотел разделить маршруты и все в отдельной папке, как бы я подошел к этому?Кроме того, у меня есть объект сокета, который я также хотел бы передать.Если кто-нибудь подскажет мне правильное направление для лучшего расположения, ваша помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 17 октября 2018

Вы должны создать что-то вроде этого

const express = require('express')

const app = express()


require('./routes')(app)

app.listen(config.port,()=>{
    console.log('we are now running')
})

Обратите внимание, что когда вам требуются маршруты, вы отправляете сам объект (app), поэтому в файле маршрута вам необходимо получить это приложение, выполнив следующеелогика.

const GetController = require('./controllers/GetController')

module.exports = (app) => {
    //can do other methods in the same way
    app.get('/get',
        GetController.getController
    )
}

и внутри вашего GetController вы можете определить такие функции, как

module.exports = {

    getController(req, res) {
        res.send({
            message: 'Get Controller'
        })
    }

}

Надеюсь, что это поможет, если вам нужно передать объект socket.io, просто добавьте его в ваш require('/routes')(app,io) и в файле маршрута module.exports = (app, io) =>{}

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...