express中app.get和app.use的解析
app.get(path,callback)中的callback只能是函数
app.use(path,callback)中的callback既可以是router对象又可以是函数
当其是router对象时,访问地址为path+router提供的路径
另外,app.use相当于是通用的一个方法,我们可以使用app.use替换app.get。
我们来看一个例子:
app.js
var express=require('express');
var app=express();
var router = require( './router');
//
app.use( '/test1', function(req,res,next){
res.send( 'hello test1');
});
//
app.get( '/test2', function(req,res,next){
res.send( 'hello test2');
});
//
app.get( '/test3',router);
//
app.use( '/test4',router);
app.listen(3000);
router.js
var express = require('express');
var router = express.Router();
router.get('/', function (req, res, next) {
res.send('hello router');
});
module.exports = router;
当我们访问/test3时提示如下: /test4可以正常访问:

在来看看如何使用app.use替换app.get
app.js
var express = require('express');
var app = express();
var router = express.Router();
// app.get('/hello', function (req, res, next) {
// res.send('hello world');
// });
9 router.get('/', function (req, res, next) {
10 res.send('hello world!');
11 });
router.get('/test', function (req, res, next) {
res.send('hello test!');
});
//此时可以访问两个地址,即localhost:3000/hello和localhost:3000/hello/test
//由此可知,上面的app.get可以由该app.use替换
//当有多条路径时可以使用路由
app.use('/hello',router);
app.listen(3000);
如上述代码所示,中间件可以访问两个地址(取决于路由的数量),其中地址localhost:3000/hello功能与上述注释块相同。
因此,当有多条路径存在时,可以使用路由。
express中app.get和app.use的解析的更多相关文章
- node.js之express中app.use
express中app.use 用法: app.use([path,] function [, function…]) 一.app.use() 在express中是怎么工作的 app.use在expr ...
- Express中app.use()用法 详解
app.use(path,callback)中的callback既可以是router对象又可以是函数 app.get(path,callback)中的callback只能是函数 当一个路由有好多个子路 ...
- express中app和router的区别
var app = express(); var router = express.Router(); 以上二者的区别是什么,什么时候用哪个最合适? 区别看下面的例子: app.js var ex ...
- express框架中router组件的app.use和app.get
首先看例子: var express = require('express'); var router = express.Router(); var index = require('./route ...
- C#项目实例中读取并修改App.config文件
C#项目是指一系列独特的.复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间.预算.资源限定内,依据规范完成.项目参数包括项目范围.质量.成本.时间.资源. 1. 向C#项目实 ...
- NodeJS - Express 4.0下使用app.dynamicHelpers错误
在NodeJS - Express 4.0下使用app.dynamicHelpers发生错误: app.dynamicHelpers({ ^ TypeError: Object function (r ...
- node express新项目默认主文件app.js
var express = require('express'); var path = require('path'); var favicon = require('serve-favicon') ...
- express 笔记 app.helpers 和 app.locals
app.helpers 和app.dynamicHelpers 是express2.X使用的 分别为静态/动态 视图助手通过其注册函数, 例如 app.helpers({ <span style ...
- H5页面中尝试调起APP
安卓版本5.0以上 IOS版本10.0以上 采用事件触发的方式处理唤醒APP 市面上常见的功能 这种功能现如今应该非常普遍了,淘宝H5,知乎H5等等... 点击后会调起APP或者打开下载页面或者直接进 ...
随机推荐
- hihoCoder 1116 计算(线段树)
http://hihocoder.com/problemset/problem/1116 题意: 思路: 用线段树解决,每个节点需要设置4个变量,sum记录答案,all记录整个区间的乘积,pre记录该 ...
- jQuery 知识点总结
jQuery 是一个“写的更少,但做的更多”的轻量级JavaScript 库.对于网页开发者来说,学会jQuery是必要的.因为它让你了解业界最通用的技术,为将来学习更高级的库打下基础,并且确实可以很 ...
- 【Python】【有趣的模块】【Requests】无状态 & 无连接
无状态:原来的Web是静态,后来换成动态的就需要保存一些上下文信息,session和cookie应运而生 无连接:原来为了请求结束后赶紧把资源让出去,后来发现每次请求中有相同的小请求时候再重复执行(而 ...
- python中的print()、str()和repr()的区别
print()函数,我们可以看出,在Python IDLE中直接输入的字符串都是有类型的,而print打印后的字符串相当于一串文字,把字符串的引号也省略了,没有类型 print()函数,生成可读性更好 ...
- Python使用win32com实现的模拟浏览器功能
# -*- coding:UTF- -*- #!/user/bin/env python ''' Created on -- @author: chenzehe ''' import win32com ...
- Sqlserver中分页,2012后支持offset + fetch,2012之前用rownum嵌套查询
今天发现原先用的sql offset fetch好用,换了一个DB就歇菜 歇菜截图 比较了一下,是数据库版本的问题 一个是13,一个是10 版本低的不支持用offset + fetch 进行分页,ms ...
- Qt532.容器QMap&QMultiMap
PS: QMap 一个Key 只能对应 一个Value (不是绝对的情况...内部都有 一个key对应多个value的机制) PS: QMultiMap 一个Key 可以对应 多个Value PS: ...
- 新建ng工程
有问题多看官网文档https://www.angular.cn/guide/quickstart 1 在远程仓库建立 1个完全空的仓库,不要建立readme.MD ng cli创建时会创建readm ...
- 牛客网NOIP赛前集训营-普及组(第一场)C 括号
括号 思路: dp 状态:dp[i][j]表示到i位置为止未匹配的 '(' 个数为j的方案数 状态转移: 如果s[i] == '(' dp[i][j] = dp[i-1][j] + dp[i-1][j ...
- NGUI中处理层级问题的几个方法总结
1.获得ui界面的UIPanel的最大层级: static int GetUIMaxDepth(Transform root) { UIPanel[] panels = root.GetCompone ...