Хорошо добавить маршрут к Node.js Экспресс во время прослушивания?

Очевидно, что типичный пример добавления маршрутов для выражения следует следующим образом:

var express = require('express');
var app = express();

app.get('/', function(req, res){
  res.send('hello world');
});

app.listen(3000);

Очевидно, что в большинстве случаев вы знаете, что маршрут get существует до начала прослушивания сервера. Но что, если вы хотите динамически создавать новые маршруты после прослушивания сервера? Другими словами, я хочу сделать что-то вроде следующего:

var express = require('express');
var app = express();

app.listen(3000, function () {
  app.get('/', function(req, res){
    res.send('hello world');
  });
});

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

Примечание. Чтобы уточнить, я не знаю, какими будут маршруты, когда я напишу основной файл server.js, который будет создавать экспресс-сервер (поэтому почему я не могу создать маршруты до того, как будет вызван listen). Список маршрутов (и их соответствующих обработчиков/функций обратного вызова) будет выведен из базы данных при запуске/запуске сервера.

Ответ 1

Согласно TJ (автор Express), его можно добавлять маршруты во время выполнения.

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