.exit Ctrl+D
log(), clear(),
Node HTTP服务器实例是一个事件发射器 EventEmitter
工作机制: 1. 如何用回调处理一次性事件 2. 如何用事件监听器响应重复性事件.
npm install --save
npm install -g 全局安装
package.json:项目的清单,
核心要素: routes, view, 数据模型.
例子: 表单的数据模型以及显示页面/利用路由来提交数据及存储数据库.
应用程序如何响应客户请求的URI.
req的要素: path(可以使用正则表达式),参数,method决定处理的endpoint.
handler: 函数,函数的数组,或者两者的组合.
app.METHOD(path, callback)
app.route(path), 返回一个route实例,可以做链式调用:
express.Route 类:使用这个类创建模块化可挂载的route(主要是这种用法.)
一系列命名的req-res-next处理流程: 使用next(‘route’)可以bypass剩下的route回调。
middleware类型: application middleware, router-level middleware, error-handling, builtin, 3rd-party.
先加载的先执行.
since express5: middleware functions that return a Promise will call next(value)
when they reject or throw an error. next
will be called with either the rejected value or the thrown Error.
next(): next()不是express API或者, 除了next(“route”)或者next(“router”), express会认为当前的req错误而进入最后的错误处理.
application-middleware: 使用app.use或者app.method 来绑定middleware 与express实例. 如果需要跳过这个路由stack中的其余部分到达下一个路由,使用next('route')
to pass control to the next route.
router-level-middleware: 工作方式与application相同,除了绑定在express.Router()实例上。最后必须用app.use()来挂载到app上.
error-handle middleware: 必须是四个参数带error才能被系统识别为error handle.
buildin middleware: express在4.x之后脱离了connect框架. 只有:express.staic, express.json, express.urlencoded3个内建midlleware.
模版文件+实际变量:生成html.
设置模版文件位置,设置引擎。
两种渲染方法: app.render, res.render: res.render在内部使用app.render, 然而app.render无法将渲染后的view送给client.
消息模型
brew search redis
brew install redis
brew services start redis / brew services stop redis / brew services restart redis /
redis-cli, ping, exit