ejs koa

呐,等你关注都等出蜘蛛网了~

共计 8400字 阅读需要 22,min

简介

中文官网 https://ejs.bootcss.com/

npm https://www.npmjs.com/package/ejs

github https://github.com/mde/ejs

官网 http://ejs.co/

安装

下面接着创建package.json

继续安装koa

网址 https://koa.bootcss.com/

github https://github.com/koajs/koa

官网 https://koajs.com/

npm https://www.npmjs.com/package/koa

koa2基础

架设http服务器

输入网址 http://127.0.0.1:3000/ 即可完成假设

输出hello world

上方是回调,将会使用main,main进行回调一个匿名函数,完成body的设置。

代表着一个http的请求

不同的请求返回不同的类型

ps 使用https://www.getpostman.com/ 编辑http请求,发送http请求

即可完成。

网页模板

使用fs模块,使用流,将客户端和文件之间建立流的关系,然后将其对接

路由

使用koa-route

继续下载

编写代码

访问

http://127.0.0.1:3000/about

http://127.0.0.1:3000/

完成路由

静态资源

koa-static

npm https://www.npmjs.com/package/koa-static

接着下载安装

编写入口文件。

访问 http://127.0.0.1:3000/1.png 将会返回public下的1.png文件

访问 http://127.0.0.1:3000/about 将会被路由进行捕获

重定向

上方完成了一次页面的跳转

中间件

上方的加载所有的都会使用一个中间件

中间件栈

中间件栈实现的是一个先进后出

异步

是滴,node.js最重要的是异步,以及回调

es7的异步函数

一段代码直接说明

输出结果为

运行过程为先运行函数asyncCall,接着输出calling和结果3,继续到await语句的时候,为一个回调的语句,此时主线程,因为遇到await语句,将会直接进行输出执行结果1的内容,等待着resolveAfter2Seconds后执行完毕,进行回调。(Promise 对象为一个暂时保存回调内容的一个对象)Promise对象将会暂时保存运行的结果,运行结果为结果4和resolved,等待执行完毕以后,将会把暂时保存的内容,赋值给result变量,由于此时已经执行完毕,将会继续运行下方的内容,输出result中的内容,result中的内容为异步的执行的内容,接着,输出结果2,完成运行。

koa2中运行异步

结果

所有的都要使用异步操作,

由于全部都是异步,将会先调用最后的一个,

接着 调用中间件的内容。

由于中间件也为异步,将会继续异步main,

由于main也为异步,将会调用异步函数file中的内容。

接着,按照上面的顺序倒着回来,最后完成中间件

ps 由于中间件的异步,这样就成功的模拟的中间件的正常的模型

正常的中间件

运行结果

先进去,等到全部执行完成以后,在出来,中间件包裹着全部

不加异步的中间件

运行结果

可以发现,变现的'溢出'

中间件的合成

npm https://www.npmjs.com/package/koa-compose

下载安装

比较简单,看文档就行。

错误处理

同try类似使用throw抛出错误。

cookies

ctx.cookies 用来读取cookies客户端发送的cookies内容

完成操作

表单操作

即post和get操作

继续使用模块 koa-body

github https://github.com/dlau/koa-body

npm https://www.npmjs.com/package/koa-body

安装

支持json格式数据的提交哦

客户端发送

格式为

返回的都为字符串

文件上传暂时搞不定。

ejs

需要先安装koa模板中间件

官网 https://www.npmjs.com/package/koa-views

index.js文件

view下的index.ejs文件

访问http://127.0.0.1:3000/

内容完成动态的更新

ps 上传文件还是不太会,无奈

赶快来分享关注吖

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180826G0F4QD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券