Добавить маршруты во время выполнения (ExpressJs)

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

var app = express();

function CreateRoute(route){
app.use(route, require('./routes/customchat.js'));
}

И Customchat выглядит

var express = require('express');
var router = express.Router();

router.route('/').get(function (req, res) {
var url =  req.baseUrl;
var roomname = url.substring(url.lastIndexOf('_') + 1);
res.render('chat', { name: roomname , year: new Date().getFullYear().toString()});
});

module.exports = router;

Когда я вызываю метод CreateRoute до начала прослушивания, он связывает маршрут. Но когда я делаю это во время выполнения, это не создает новый маршрут. Моя цель - добавить маршруты добавить время выполнения. Я сгенерирую путь как /room_Date. И это должно быть добавлено во время выполнения с использованием шаблона customchat.

Я использую экспресс версию 4.13.

Заранее спасибо за помощь.

1 ответ

customchat.js должен называться customChat.js и быть

const customChat = (req, res) => {
  const { name } =  req.params;
  const year = new Date().getFullYear().toString();
  res.render('chat', { name , year });
}

module.exports = customChat

затем, когда вы создаете свое приложение

const express = require('express')
const customChat = require('./routes/customChat.js')
const app = express()

app.use('/chat/:name', customChat)

См. Официальные документы по экспресс-маршрутизации для получения дополнительной информации.

Другие вопросы по тегам