Express简单基础

Express–基于Nodejs平台,快速、开放、极简的web开发框架。是一个保持最小规模的灵活的Nodehs web应用程序开发框架,为web和移动应用程序提供一组强大的功能。

1.安装

	npm install express --save
  1. 路由
	app.get('/',function(req,res){
			res.send('Hello World')
	}
	
	app.post
	app.put
	app.delete

app.all(’/secret’,function(req,res,next):
无论使用get、post、delete、put还是在http模块中支持的其他任何Http请求,都将为针对/secret的请求执行处理程序。

	app.get('/'
			 /about
			 /eg.txt
			 /ab?cd   ===acd/abcd
			 /ab+cd   ===abcd/abbcd/abbbcd
			 /ab*cd    === ab任意cd
			 /ab(cd)?e  ===ade/abcde

基于正则表达式的路由匹配:

	app.get(/a/,
			匹配名称中具有'a'的所有路由
	app.get(/.*fly$/
			匹配以fly胡额为的路由

请求方法Request:

	req.app:当callback为外部文件时,用req.app访问express实例;
	req.baseUrl:获取路由当前安装的URL路径;
	req.body/req.cokkies:获得请求主体/Cookies
	req.fresh/req.stale:判断请求是否还新鲜;
	req.hostname/req.ip:获取主机名和ip地址;
	req.originalUrl:获取原始请求URL;
	req.params:获取路由的parameters;
	req.pathL获取请求路径;
	req.protocol:获取协议类型;
	req.query:获取URL的查询参数串;
	req.route:获取当前匹配的路由;
	req.subdomains:获取子域名;
	req.accepts():检查可接受的请求的文档类型;
	req.acceptsCharsets/req.acceptsEncodings/req.acceptsLanguages:返回执行字符集的第一个可接受字符编码;
	req.get():获取指定的Http请求头
	req.is():判断请求头Content-Type的MIME类型;

响应方法Response:

	res.app:同req.app
	res.append():追加指定http头
	res.set():在res.append()后将重置之前设置的头
	res.cookie(name,value,[,options]):设置Cookies
	option:domain/expires/httpOnly/maxAge/path/secure/signed
	res.clearCookie():清除Cookie
	res.download():提示将要下载文件
	res.get():返回指定的HTTP头
	res.end():结束响应进程
	res.json():发送json响应
	res.jsonp():在jsonp的支持下发送Json响应
	res.location():只设置响应的location http头,不设置状态码或者close response
	res.redirect():重定向请求,设置响应的location http头,并设置状态码为302
	res.render():呈现视图模板,渲染一个view,同时向callback传递渲染后的字符串,如果在渲染过程中有错误发生next(err)将会被自动调用,callback将会被传入一个可能发生的错误及渲染后的页面,这样就不会自动输出了。
	res.send():发送各种类型的响应
	res.sendFile :以八位元流形式发送文件,自动根据文件extension设定Content-Type
	res.sendStatus():设置响应状态码并以响应主体形式发送其字符串表示
	res.set():设置http头,传入object可以一次设置多个头;
	res.status():设置http状态码
	res.type():设置Content-Type的MIME类型。

app.route()为路由路径创建可链接的路由处理程序。因为在单一位置指定路径,所以可以减少冗余和输入错误。

	app.route('/book')
		.get(function(req,res){
			res.send()
		})
		.post(function(req,res){
			res.send()
		})

express.Router创建可安装的模块化路由处理程序。Router实例是完整的中间件和路由系统。

  1. 编写中间件
    中间件函数能够访问请求对象req、响应对象res及应用程序的请求/响应循环中的下一个中间件函数,下一个中间件函数通常由名为next的变量来表示。

    中间件函数可以执行以下任务:

     		执行任何代码;
     		对请求和响应对象进行更改
     		结束请求/响应循环
     		调用堆栈中的下一个中间件
    

    Express应用程序可以使用以下类型的中间件:

     		应用层中间件
     		路由器层中间件
     		错误处理中间件
     			express.static(root,[options])
     		内置中间件
     		第三方中间件
    
  2. 使用模板引擎
    在express可以呈现在模板文件之前,必须设置以下应用程序设置:

    	view:模板文件所在的目录
    	view engine:要使用的模板引擎。
    

    安装对应模板引擎包:npm install pug --save

  3. 错误处理
    错误处理函数有4个自变量(err,req,res,next)
    在其他app.use()和路由调用之后,最后定义错误处理中间件

  4. 静态文件
    express.static(root,[options])

  5. 常见问题及解答

	app.use(function(req,res,next){
		res.status(404).send('Sorry can't find that')
	})
	app.use(function(err,req,res,next){
		console.error(err.stack)
		res.status(500).send('Something broke! ')
  })
  1. Express应用程序的进程管理器
    使用进程管理器有以下好处:

     在应用程序崩溃后将其重新启动
     获得对运行时性能和资源消耗的洞察
     动态修改设置以改善性能
     控制集群
    

用于Express和其他Nodejs应用程序的最流行的进程管理器包括:

	StrongLoop Process Manager
	PM2
	Forever

具体介绍在目录篇章。

  1. 生产环境最佳实践:安全

     使用TLS
     使用Helme
     安全使用cookie
     确保依赖项的安全
    

    具体介绍在目录篇章。

  2. 生产环境最佳实践:性能和可靠性

    	代码中的注意事项:
    		使用gzip压缩:降低响应主体的大小,提高web应用程序的速度。
    		不使用同步函数:同步函数和方法会阻止进程的运行,直至其返回。
    		使用中间件提供静态文件
    		正确进行日志记录
    		正确处理异常:使用try...catch和promise
    	
    	环境和设置中的注意事项:
    		将NODE_ENV设置为:'production':指定运行应用程序的环境。
    				将NODE_ENV设置为production会使express:
    							高速缓存视图模板
    							高速缓存从css扩展生成的css文件
    							生成简单的错误信息
    		确保应用程序能够自动重新启动
    		在集群中运行应用程序
    		高速缓存请求结果
    		使用负载均衡器
    		使用逆向代理
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值