当前位置: 首页 > 面试题库 >

如何使用express.js配置动态路由

梁烨烨
2023-03-14
问题内容

我有一个如下所示的route.js:

module.exports = function(app) {

  app.get('/tip', function(req, res) {
    res.render("tip");
  });

  app.get('/article', function(req, res) {
   res.render("article");
  });

  app.get('/article1', function(req, res) {
   res.render("article1");
  });

  app.get('/article2', function(req, res) {
   res.render("article2");
  });

  app.get('/article3', function(req, res) {
   res.render("article3");
  });

  app.get('/modules/:name', function(req, res) {
    var name = req.params.name;
    res.render('modules/' + name);
  });

  app.get('/modules/esaver/:name', function(req, res) {
    var name = req.params.name;
    res.render('modules/esaver/' + name);
  });

};

考虑到我要创建200多种不同的路线,最终我会遇到诸如“ article1”,“ article2”等内容

而我的app.js就像:

var express = require('express')
  ,http = require('http')
  ,fs = require('fs')
  ,path = require('path');

var app = express();

html_templates = __dirname + '/html_templates';

app.set('views', html_templates + '/views');
app.set('view engine', 'jade');

app.use('/Core', express.static(__dirname + '/Core'));


app.listen(3000, function () {
 console.log("express has started on port 3000");
});

require('./html_templates/controller/routes.js')(app);

有没有动态的方式来创建这个?


问题答案:

终于成功了。

在我遇到的情况下,第1条,第2条等:

app.get('/:name(article|article2|article3)?', function(req, res) {
    var name = req.params.name;
    res.render(name);
});

在获得多级网址的情况下,我创建了一个自定义函数:

function geturl(url) {

  app.get('/' + url + '/' + ':name', function(req, res){
    var name = req.params.name;
    res.render(url + '/' + name);
  });

};


 类似资料:
  • 问题内容: 我很难找到有关通过数据库动态使用ui路由器的任何文档。当然,所有内容都经过硬编码。 我的杰森: 我的应用程式: 我很难动态配置视图。有任何想法吗? 更新: 我根据RadimKöhler 的回答做了一个Plunker。感谢您的帮助。 我认为ui-router是defacto路由器,它具有动态性,它将使大型应用程序更易于管理。 问题答案: 有一个显示我们如何动态配置视图的插件。的更新版本如

  • 问题内容: 我正在尝试使用express.js创建一个简单的CMS,以动态创建路由。它从数据库中获取一个JSON,如下所示: 并遍历对象以创建路由,如下所示: 现在一切正常。但是问题在于,每次用户修改内容和路径时,都需要重新启动整个节点应用程序。我没有找到任何API调用来删除路由。 有什么方法可以安全地删除通过app.get设置的旧路由吗?我应该这样做吗? 有没有更好的方法来进行这种路由?我喜欢这

  • 我目前正在寻找一种动态组装config-keys(回退处理)的方法,然后在我们的microprofile-config.properties文件中查找这些。这样的文件可能如下所示: 因此,当存在客户和子客户时,使用on 我得到这个问题的原因是我想使用注释,所以没有ConfigProvider.getConfig()。这意味着我必须在自定义的中组装动态配置键。 我知道ConfigSources是在服

  • 我在Windows 10上安装了Docker,并从Docker Hub中提取了jenkins Docker。接下来,我开始了我的jenkins docker, 接下来,我使用Manage Jenkins和Manage Plugins安装Docker plugin,然后转到配置页面并尝试添加Docker Cloud。 在我进入 Docker 主机 URI : tcp://127.0.0.1:2375

  • cmf_set_dynamic_config($data) 功能 设置动态配置 参数 $data: array 要设置的数据,格式["cmf_default_theme"=>'simpleboot3'] 返回 boolean

  • Envoy架构支持多种的配置管理方法。采用哪种部署方法,取决于需求实现者。可以采用全静态的配置方式,实现简单的部署。更复杂的动态部署,需要采用更复杂的动态配置,需要基于实现者提供一个或多个外部REST的配置API。本文档概述了可用的配置选项。 全量参考配置 安装参考配置 Envoy v2 API概述 术语 SDS(Service Discovery Service) EDS(Endpoint Di