javascript - 在运行时添加路由 (ExpressJs)

标签 javascript node.js express routes runtime

我想在运行时添加路由。我读到它可能,但我不太确定如何。目前我使用以下代码:

var app = express();

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

自定义聊天看起来像

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 添加。

我使用的是 express 版本 4.13。

预先感谢您的帮助。

最佳答案

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)

参见 the official Express routing文档以获取更多信息。

关于javascript - 在运行时添加路由 (ExpressJs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32800983/

相关文章:

javascript - 如何使用express和mongoose中的参数使聚合函数动态化

node.js - 如何设置 CSURF (Express Middleware) 以与 Postman 一起工作?

javascript - javascript prototype 和 jquery extend 有何不同

javascript - 使用 Promise.all(),其中个人 promise 出错时重试

node.js - "Negative"SQL (postgres) 查询

node.js - cloudinary 依赖 npm install 后找不到模块 'cloudinary' 的声明文件

javascript - JQuery点击事件未触发

javascript - 使用 .htaccess 的登录页面

node.js - 如何克隆 Mongoose 文档?

javascript - 使用 Promise 进行 fetch().then() 后页面保持刷新(设置了 e.preventDefault())