前后端分离,前端nodejs运行环境,使用koa2集成负责资源分配与用户交互,实现token验证用户身份,路由控制。等!
自行 百度 解决;
"program": "${workspaceFolder}\app.js"
此处就是是将app.js作为启动文件。${workspaceFolder}代表根目录,vsc启动时会在根目录下找到并加载app.js文件。
参数介绍: name 项目名称、 version 版本号、 description 项目描述、 main 项目启动文件、 scripts 启动快捷设置, author 作者, dependencies 第3方中间件名称及版本。
最重要的
“ dependencies ”这里添灶尘加一些要用到的包,以上是这次要用到的所有的包,版本自己更改。
“ scripts ”这里是一些nodejs的便捷命令,上线的时候会用到,直接在终端中,package.json同级目录 ,执行‘npm start’ 即 可启动app.js。
别的没啥太大作用瞎写隐桐禅即可。
启动相关配置,封装到config/init.js中,启动文件直接引用即可
3-6-1、init.js项目核心。
异常友好处理方法封装
路由配轮凳置
视图渲染
核心集成
3-6-2、config.js项目参数配置。为什么不用json文件 因为json不能加注释
3-6-3、token.js项目token相关方法封装。
执行后项目结构会增加两个文件
新增
src/hello.js。
views/index.html
浏览器访问: http://127.0.0.1:3000/koa/login
输入值获取token
获取的token如图:
先不用带token进行访问: http://127.0.0.1:3000/koa/ hello/jiaobaba,被token拦截,返回401
带上token访问: http://127.0.0.1:3000/koa/ hello/jiaobaba
测试页面渲染,及跳转html页面,直接访问 http://127.0.0.1:3000/koa /views
结束!!!!!!
需要源码联系我
koa2 完全抛弃了generator和co的做法,而是使用async/await来做异步开发。## 不同
koa和express在表现上的一点不同是采用ctx一个参数来调用中间件,而不是express的req, res。
其实在使用上还是个人认或则为是更方便了的。</ol>2. 然后是在中间件连接的方式上有所不同。
express的设计是串联的,设计思路超级简洁。koa的某一个中间件可以自行选择之后中间件的执行位置的。
## 举例比如一个服务器处理携好时间/日志的中间件的开发:express:request进来,记录时间到request._startTime上。绑定一个函数到response的'end','finish'以及response.socket的'error','close'事件上。那个函数会用当前时间和startTime做差,算出运行时间。koa2:```jsconst xTime = async (ctx,next)=>{let start = new Dateawait next()ctx.set('X-Response-Time', (new Date) - start) + 'ms')}```这是在功能开发上,在错误处理上的友好度就更高了。没有特意抹黑express的中间件开发,那个express版的计时器是express自带的服务器日志中间件morgan的实现。
## 社区express的社区还是大。衫隐棚koa本来就小,还被从koa1转koa2一折腾,就更小了。而现在koa2还在alpha版,koa及其插件的开发速度比较没有保证。你找到一个中间件,如果是express的,得转过来。如果是koa的,一般也得再转一次。比如我使用的passportjs,github有koa版koa-passport,就分koa1版本和koa2版本的,选择时得注意一下。
## 个人评价koa2好用,设计上的确有优势。优势不在能实现更强的功能,而是可以更简单地完成功能。koa2社区远不如express,原因之一是~~因为koa2的正式版离发行估计还得3~6个月。~~koa的正式版是koa1。koa1在思想上与koa2是一致的,但是koa2的实现更漂亮。有koa1到koa2的中间件封装函数`koa-convert`。而一般通用的中间件都有koa版,或者能够轻松的转为koa版。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)