app

app是通过调用express()函数生成的

属性

app.locals

app.locals是一个对象,在这个对象上定义的属性是一个全局变量,在整个应用中都好用,与这个形成对比的是res.locals,这个对象只在请求的生命周期中存在

注意:不能在中间件中访问全局变量

方法

app.all(path, callback[, callback])

处理所有的请求路径,一般有俩种用法,第一种就是app(’*‘,callback),第二种用法是app.all("/api/*",callback);

app.delete(path, callback)

删除特定的请求路径

app.engine(ext, callback)

登记模板引擎,这块express都给你写好了,一般不用你写,一般你创建express应用时会提醒你选择什么模板引擎

app.get(path, callback)

处理http get请求,然后是回调函数

app.listen(port, [hostname], [callback])

这个方法与nodejs中的http.server.lisen()是相同的,这个方法我看官方教程上写的还比较麻烦,这里就不必深入的讲解,一般你创建express应用时,自动监听到3000端口,你也可以自己更改

app.param([name], callback)

这个name参数就是,就是你路径中请求的参数,可以是一个单独的字符串,也可以是一个数组,callback函数的参数是请求对象,响应对象,下一个中间件参数就是next,还有就是传递参数的值

如果name是一个数组那么就是,callback中的next参数,指向name中下一个请求的参数,name中最后一个参数,也就是数组最后的一项的next指向的是下一个中间件,而不是name中的下一个请求参数


如果是http get  /user/42,通过上面的路由处理会显示如下结果


在通过一个例子来熟悉app.param()的用法


通过http get user/42/3,通过以上路由处理,显示如下


还有一种形式的app.param(),他接受俩个参数一个name一个数字,用法如下


app.path()

返回一个app的路由地址,例如app.get('/user', callback),如果运用该方法返回的是/user字符串

app.post(path, callback)

处理一个http post 请求

app.put(path, callback)

处理一个http put请求

app.render(view, [locals], callback)

和res.render()方法类似,通过这个全局变量渲染这个view

app.router(path)

就是只有特定的路由等于path(不管是http 的get, post, put请求)能够通过router函数,这个函数返回一个路由的实例,然后通过这个实例然后进一步处理路由,在这个实例上可以调用all(),get(), post()方法。如下


app.use([path], function[,function])

就是在path上安装上中间件,默认的path是“/”,app.use("/apple"...)匹配/apple和/apple/new和/apple/new/old还有很多,如下


如果没有path,那么每一个请求都会执行function,就是所有请求都会被function处理,如下


注意以下情况


第二个路由处理得不到执行,因为第一个中间件不会让请求出来的

path路径可以是字符串可以是正则表达式,还可以是数组

字符串


模式匹配


正则表达式


数组


定义中间件可以用app也可以是router,因为app和router都实现了中间件接口,中间件函数可以是一个也可以是一系列,还可以是数组,或者是组合

单个中间件函数


一系列中间件函数


数组


中间件函数的组合


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,233评论 6 495
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,357评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,831评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,313评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,417评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,470评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,482评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,265评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,708评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,997评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,176评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,503评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,150评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,391评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,034评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,063评论 2 352

推荐阅读更多精彩内容