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)    收藏  举报

导航