最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

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

运维笔记admin19浏览0评论

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

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

我有一个如下所示的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);

有没有动态的方式来创建它?

回答如下:

我会为/modules/:name做同样的事情

app.get('/article/:id', function(req , res){
  res.render('article' + req.params.id);
});

从休息的角度来看,这将更有意义。

如果由于某些特殊原因而无法执行此操作,则可能需要执行以下操作:

var articlesEndpoints = ['/article2', '/article3'];
articlesEndpoints.forEach(function(name) {
  app.get(name, function(req, res) {
    res.render(name);
  });
});

这是您的意思吗?

发布评论

评论列表(0)

  1. 暂无评论