Nginx NodeJS Express - Router 4
http://www.codes51.com/article/detail_2787757_4.html
模块
前面分析index.js时看到了module.exports的用法。module.exports用来导出一个Node.js模块内的对象,
调用者使用require加载模块时,就会获得导出的对象的实例。
我们的index.js导出了Router对象。app.js使用require(‘./routes/index’)获取了一个Router实例。
module.exports还有一个辅助用法,即直接使用exports来导出。
exports.signup = function(req, res){
//some code}
exports.login = function(req, res){
//some code}
上面的代码(假定在users.js文件里)直接使用exports来导出。当使用exports来导出时,你设置给exports的属性和方法,
实际上都是module.exports的。这个模块最终导出的是module.exports对象,你使用类似“exports.signup”这种形式设置的方法或属性,
调用方在require后都可以直接使用。
使用users模块的代码可能是这样的:
var express = require('express');
var app = express();
...
var users = require('./routes/users');
app.post('/signup', users.signup);
app.post('/login', users.login);
...
1. 什么是router路径,什么是middleware?
我们输入www.baidu.com 来访问百度的主页,浏览器会自动转换为 http://www.baidu.com:80/(省略一些参数)。
http://代表我们同服务器连接使用的是http协议,www.baidu.com 代表的是服务器的主机地址,
会被我们的pc通过DNS解析为IP地址。80是默认的应用层端口。/ 即为我们访问的服务器(www.baidu.com)的路径,
服务器要对我们访问的这个路径做出响应,采取一定的动作。我们可以把这一过程看做一个路由。
访问的路径‘/’即为router的路径,服务器采取的动作即为middleware,即为一个个特殊的函数。
2. router路径
www.baidu.com/test: 路径为 /test
www.baidu.com/test?name=1&number=2: 路径同样为/test, ?后面会被服务器理解传给路径的参数。
3. Middleware
posted on 2017-09-14 15:27 fanbird2008 阅读(43) 评论(0) 收藏 举报
浙公网安备 33010602011771号