如何使用express.js配置动态路由 [英] How to configure dynamic routes with express.js

查看:160
本文介绍了如何使用express.js配置动态路由的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个这样的route.js:

I have a route.js which looks like this:

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'etc

Considering i have over 200 different routes to create, i would end up with stuff like 'article1', 'article2' etc

我的app.js就像:

and my app.js is like:

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

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

Is there any dynamic way to create this?

推荐答案

最后得到它的工作..

Finally got it working..

如果我得到,article1,article2等:

In cases where I got, article1, article2 etc:

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

如果我有多级网址,我创建了一个自定义函数:

In cases where I got multi level url, I created a custom function:

function geturl(url) {

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

};

这篇关于如何使用express.js配置动态路由的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆