close
因為Express把所有路由規則寫在app.js中,若網站不斷長大會造成維護難度不斷加強
所以先將路由規則分離出去,由routes中的index.js統一掌管
此做法可以把app.js中的app.get方法搬到route/index.js中,可以維持app.js的簡潔性
首先進到app.js
app.use(app.router); //刪除這行 Routes(app); //加上這行
再app.js中往下捲,刪除所有app.get開頭的路由參數
//刪除以下內容 App.get(‘/’, routes.index) App.get(‘/hello’, routes.hello) App.get(‘/time’, routes.time)
整個app.js長這樣
/** * Module dependencies. */ var express = require('express'); var routes = require('./routes'); var user = require('./routes/user'); var http = require('http'); var path = require('path'); var app = express(); // all environments app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.json()); app.use(express.urlencoded()); app.use(express.methodOverride()); app.use(express.static(path.join(__dirname, 'public'))); routes(app); //增加這行 // development only if ('development' == app.get('env')) { app.use(express.errorHandler()); } http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); });
接下來進到routes/index.js檔案,編輯如下
//index.js /* * GET home page. */ module.exports = function(app){ app.get('/',function(req,res){ res.render('index', { title: 'Express' }); }); app.get('/hello',function(req, res){ res.render('hello', { world: 'Hello World'}); }); app.get('/time',function(req, res){ res.send('Current time is ' + new Date().toString()); }); };
這樣就完成路由控制由index.js管理的目的
Django 方面就無需變更,因為本身的路由就是由專門的urls.py檔案管理,不會與setup.py混合
文章標籤
全站熱搜
留言列表