Node.js Экспресс-серверная структура

1

Я пытаюсь найти решение для своего сервера и его структуры. Я хочу сделать это отдельно.

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

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

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

в разные файлы. В моем случае все они стоят в файле под названием "server.js". Как я могу отделить их, чтобы работать над ними лучше?, и одновременно запускать все из них. Я искал эту ситуацию, и я нашел разные типы этого случая. Но я не мог получить четкого ответа.

  • 1
  • 0
    Возможный ответ также в: stackoverflow.com/questions/33946972/…
Показать ещё 4 комментария
Теги:
express

2 ответа

5
Лучший ответ

Одна вещь, которую вы можете сделать, это включить "роутер" в ваши экспресс-функции.

Вот небольшой пример того, как я это делаю. (Бесстыдный плагин, не стесняйтесь просматривать исходный код игры для более полного подробного маршрутизатора здесь)

server.js

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
    })

Это позволяет выполнять очень специфическую функциональную маршрутизацию, а также разделять маршрутизаторы на разные файлы (я храню их в маршрутах)

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

Это базовая структура того, как она будет выглядеть в вашей файловой архитектуре. Очень чистый, очень простой в модуляции.

  • 0
    Это ИМО лучшее решение. Вы можете посмотреть на server.js , который по сути является маршрутизацией, задокументированной в одном файле, но вы также можете разбить функции / бизнес-логику на логические части.
1

Что касается вышеприведенного комментария Sterling Archer, мы используем аналогичную иерархию папок для нашей разработки

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: Мы используем ниже генератор yoeman для создания выше структуры папок для нас, генератора yaoeman, npmjs link, yo-dodan git repo (чтобы получить представление о структуре файла)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню