介绍koa2 创建微博项目

使用koa2-创建项目

使用koa-generator创建项目

1.项目文件下,安装脚手架工具koa-generator

1
npm install -g koa-generator

2.选择koa2版本,**-e说明使用ejs模板**进行开发,创建项目

1
koa2 -e 

3.安装依赖

1
npm install

运行项目

4.启动项目

1
npm run dev

5.访问http://localhost:3000/
`http://localhost:3000/`

生成文件

  • bin文件夹:启动文件
  • src-App.js:项目的主文件,处理业务(他会将项目中写好的文件进行编译执行)
  • node_moudles文件夹:依赖文件
  • public文件夹
    • images文件夹:存放图片
    • javascipts:存放js文件
    • stylesheets:存放css文件
  • routes文件夹:存放路由
  • views文件夹:ejs文件
  • **package.json:**基本命令(比如启动项目的npm run dev就是这里定义的)

借助coding管理项目


使用cross-env

  1. 安装cross-env:npm i cross-env -D
  2. 设置package.json:添加一部分
    • 这里就不用另外安装nodemon进行热更新了,框架中执行的dev命令中自带了
    • start基本用不到,可以删除
    • test是单元测试用的,此时可先清空:清空test

设置原因

  • windows、linux、mac os三个系统中设置环境变量的方式都不同,但使用cross-env可以把他们统一起来,这样代码在3个系统中都能运行。
  • 在node中,process对象是全局变量,它提供当前node.js的有关信息,以及控制当前node.js的有关进程。因为是全局变量,它对于node应用程序是始终可用的,无需require()。
  • env是process的一个属性,这个属性返回包含用户环境信息的对象。在终端输入node后,在输入process.env可以看到打印出来的信息。
  • NODE_ENV不是process.env对象上原有的属性,它是我们自己添加上去的一个环境变量,用来确定当前所处的开发阶段。
    • 一般我们将 生产阶段 设为production,开发阶段 设为develop(在package.json中设置),然后在 脚本 中读取process.env.NODE_ENV即可知道现在是开发阶段还是生产阶段。

整理代码结构

  • 目前的代码结构不符合我们所习惯的:目前的代码结构
  • 稍作调整,新建src文件夹,将public、routes、views、app.js剪切到src下调整后的结构
  • 修改bin-www.js下app的引用路径修改bin-www.js下app的引用路径
  • 页面正常显示即调整成功:页面正常显示

重新提交coding

项目进行重新提交,具体步骤在这篇博客中


路由演示

  • 自带的routes-index.js:routes-index.js
  • 自带的routes-user.js:routes-user.js

异步渲染模板

  • 在routes-index.js中key看到,ctx.render()是await的,即异步的,也就是说,node渲染ejs模板是异步的
  • 原因:node中所有的IO操作都是异步的,而渲染模板实际上就是读取模板,读取模板是异步的
  • 我们需要使用await将模板异步读取出来,然后再将变量返回给模板

处理get请求

动态参数

  1. 访问个人页时,可通过ctx.params来获取路由中传递的参数index.js
  2. 点击“加载更多”时,index.js

处理post请求

post请求的数据

  1. 登录时,可通过ctx.request.body(对象)获取post请求中的数据user.js
  2. postman测试:postman测试

重新提交coding

  1. 添加文件到本地仓库:git add .
  2. git commit -m "feat:演示路由"
  3. 本地文件推送到coding服务器:git push origin master(master也可以是其他分支)

,