01.基本框架搭建

248 阅读2分钟

这是一个系列课程,从0到1,实现一个简易node版的serverless服务 本篇为 01基本框架搭建

说明

我们的项目基础选用koa,具体为什么是koa

  • 相比于expresskoa的异步处理更加的好
  • 相比于nest,egg等,koa更加的轻便
  • koa特别小,把中间件都外包了,所以针对不同的功能就是选择不同的中间件去使用即可,非常的灵活

koa 安装

通过下面的几行代码,我们就能创建一个最简单的服务

npm i koa
const Koa = require('koa')
const app = new Koa()
app.use((ctx,next)=>{
    ctx.body = 'hello world'
    next()
})
app.listen(8888)

参数的处理

说明

由于koa的设计理念就是只提供最基本的功能,不集成任何多余的插件,所有的中间件都要自己安装 因此在后去post的参数方面,原生的方面也是比较麻烦 所以借助中间件处理 koa获取get和post请求的参数

安装中间件处理POST的参数

最后处理结果会把post参数放到ctx.request.body

npm i koa-bodyparser
const bodyParser = require('koa-bodyparser')
app.use(bodyParser())

问题

// 奇怪:在使用了koa-badyparser之后 为啥打印ctx.request 里面看不到 body,但是取值却是有的 console.log('ctx ~~~body',ctx.request)

method

ctx.request.method

url

ctx.request.url

args (请求参数)

如果是GET请求,那么取 ctx.query 如果是POST请求,那么取 ctx.request.body

nodeman 的使用

每次我们修改一点内容,都需要重新启动node服务来测试是否正确 这样非常的不方便,效率也不高

这个时候我们可以使用nodeman 它的功能是监听某些指定的目录或则文件,当其发生变化的时候,nodeman便会立即执行 指定的启动命令 这一点跟webpack中的热更新比较类似 相关教程

Nodemon 简介、安装、使用和配置

监听文件并启动文件(命名行)

nodeman --watch src  index.js

监听后缀名并启动文件(命令行)

nodeman --ext js,json 

组合(命令行)

nodeman --watch src --ext js.json index.js

配置文件

    "start": "nodemon -x npm run server",
    "server": "node index"
{
  "env": {
    "NODE_ENV": "development"
  },
  "watch": ["*.js", "*.json"],
  "ignore": ["package*.json", "nodemon.json", "node_modules", "public"]
}