NodeJS之重构Express路由
来源:互联网 发布:c语言数据类型字节数 编辑:程序博客网 时间:2024/06/05 23:51
本人是学ASP.NET MVC出生,也用过Spring,所以对MVC模式并不陌生,刚开始接触node。经过一番实践,我们可以通过重构express自动生成的项目结构,实现像Java、ASP.NET那样便于管理URL映射。
其中,app.js中的配置如下
/** * Module dependencies. */var express = require('express'), http = require('http'), /* route = require("./routes/router.js"),*/ path = require('path');var app = express();app.configure(function() { app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); //指定视图引擎处理模块,jade app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); //引用body-parse中间件,便于POST数据的解析 app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); // app.use({ // secret: 'hubwiz app', //secret的值建议使用随机字符串 // cookie: { maxAge: 60 * 1000 * 30 } // 过期时间(毫秒) // }); //使用cookie app.use(express.cookieParser()); //使用session // app.use(require('express-session')); //加入对静态文件的处理 app.use(express.static(path.join(__dirname, 'public'))); app.use(function(req, res, next) { res.type("text/html"); res.status(404); res.send("<h1>404-Not Found!</h1>"); next(); });});//引入错误中间件app.configure('development', function() { app.use(express.errorHandler());});// app.get("/", function(req, res, next) {// return next();// }, index.index);// app.get('/users', user.list);require('./routes/route.js')(app);将pp的实例传递给外部文件http.createServer(app).listen(app.get('port'), function() { console.log("Express server listening on port " + app.get('port'));});
路由映射配置:
var index = require('../controller/index.js'), user = require('../controller/user.js');//引入外部控制器module.exports = function() { return { "home": { "url": "/", "method": "get", "handler": index.index }, "user-get": { "url": "/users", "method": "get", "handler": user.list }, "user-post": { "url": "/users", "method": "post", "handler": function(req, res) { res.render("user", req.method); } } }};
绑定路由映射:
var routes = require('./config.js')();module.exports = function(app) { for (var item in routes) { app[routes[item].method](routes[item].url, routes[item].handler); };};//绑定路由映射
经过这样处理之后,每次我们增加新的控制器之后,只需要在config.js文件中配置路由名称即可,便于项目的维护与开发。
——以上内容大部分参考自《Node与Express开发》
0 0
- NodeJS之重构Express路由
- nodejs express 路由
- nodejs express路由详解
- 【重拾】nodeJS路由
- nodejs之express 从零开始
- nodejs之express 从零开始
- Nodejs express之中间件
- NodeJs之express
- nodejs之express框架
- nodejs入门之Express
- nodejs 框架之express
- nodejs 框架之express
- NodeJS 实现类是express路由
- NodeJS使用Express框架设置路由
- 菜鸟学习nodejs--express(二)路由
- nodejs开发 express路由与中间件
- nodejs开发 express路由与中间件
- nodejs express 子app功能(路由)
- [斜率优化DP] BZOJ1096: [ZJOI2007]仓库建设
- wireshark简单抓包
- thinkphp实现对MySQL数据库实现备份功能
- 解析Javascript事件冒泡机制
- 寒假篇40
- NodeJS之重构Express路由
- java中的异或
- Tornado、Bottle以及Flask
- 挂起进程和进程的阻塞和挂起的区别
- C语言基础
- 关于三元运算符
- Lua类的实现
- LeetCode_448. Find All Numbers Disappeared in an Array
- Solr过滤器查询示例