- 内容简介
- 译者序
- 前言
- 第 1 章 安装配置新项目
- 第 2 章 Flexbox 布局介绍
- 第 3 章 用 React Native 开发一个应用
- 第 4 章 在 React Native 中使用导航
- 第 5 章 动画和滑动菜单
- 第 6 章 用 React Native 绘制 Canvas
- 第 7 章 使用 React Native 播放音频
- 第 8 章 你的第一个自定义视图
- 第 9 章 Flux 介绍
- 第 10 章 处理复杂的应用程序状态
- 第 11 章 使用 Node 来实现服务端 API
- 第 12 章 在 React Native 中使用文件上传
- 第 13 章 理解 JavaScript Promise
- 第 14 章 fetch 简介
- 第 15 章 在 iOS 中使用 SQLite
- 第 16 章 集成 Google Admob
- 第 17 章 React Native 组件国际化
- 附录 A React.js 快速介绍
- 附录 B Objective-C Primer
- 附录 C webpack 入门
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
处理相关参数
路由实例
我们可能经常像下面这样在 Express 应用中写路由处理:
var express = require('express'); var app = express(); app.get('/todos/', function(req, res){ ... }); app.get('/todos/:id', function(req, res){ ... }); app.post('/todos', function(req, res){ ... });
从上面的例子中,我们可以看出,有一部分代码功能重复了。我们可以使用一个 route 实例来优化这部分代码:
var express = require('express'); var app = express();
var todosRoute = app.route('/todos'); ... app.listen(3000);
代码 var todosRoute = app.route('/todos') 会处理所有/todos 路径的请求,并返回路由对象。
路由部分的代码可以像下面这样来写:
var express = require('express'); var app = express(); app.route('/todos') .get(function(req, res){ }) .post(parseUrlEncoded, function(req, res){ }); ...
app.route 函数接受和前面一样的参数形式:
app.route('/todos/:id')
重构路由
随着我们应用功能的增加,写逻辑代码的文件也会随着变大。由于太多的代码导致文件不太好维护,所以我们可以这样来拆分文件:
var express = require('express'); var app = express(); app.use(express.static('public')); var todos = require('./routes/todos'); app.use('/todos', todos); app.listen(3000);
正如你所看到的,我们将路由部分的代码放在了./routes/todos.js 这个新文件里面。下面看看如何通过 Node 的模块系统来组织不同的代码文件。
在项目的目录下新建一个 routes 文件夹,在该文件夹下新建一个 todos.js 的文件。
var express = require('express');
var router = express.Router(); ... module.exports = router;
我们使用 module.exports 这个方法将 router 导出为一个 Node 的模块:
var express = require('express'); var router = express.Router(); var bodyParser = require('body-parser'); var parseUrlencoded = bodyParser.urlencoded({ extended: false }); var todos=[ 'Todo item 1', 'Todo item 2', 'Todo item 3' ]; router.route('/'); // 安装目录相对于根目录 module.exports = router;
最后将之前的路由处理移动到新的文件中:
... router.route('/') .all(function(req, res, next){ }) .get(function(req, res, next){ }) ...
回到 index.js 文件,在文件中载入新的路由模块:
var express = require('express'); var app = express(); app.use(express.static('public')); var todos = require('./routes/todos'); app.use('/todos', todos); app.listen(3000);
如果需要做其他的路由处理,直接载入新的路由模块就可以了:
var express = require('express'); var app = express(); app.use(express.static('public')); var todos = require('./routes/todos'); var users = require('./routes/users'); app.use('/todos', todos); app.use('/users', users); app.listen(3000);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论