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都实现了中间件接口,中间件函数可以是一个也可以是一系列,还可以是数组,或者是组合

单个中间件函数


一系列中间件函数


数组


中间件函数的组合


你可能感兴趣的:(app)