Koa搭建node服务

一个简易node服务(大佬请忽略),路由配置、get/post请求、本地模拟数据库

项目结构:
在这里插入图片描述
npm install koa koa-body koa-cors koa-router -S
npm install nodemon -D (若需要热更新,则安装nodemon并使用nodemon启动服务)

package.json
在这里插入图片描述

{
  "name": "koa-node",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "scripts": {
    "start": "node server.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "koa": "^2.11.0",
    "koa-body": "^4.1.1",
    "koa-cors": "0.0.16",
    "koa-router": "^7.4.0"
  },
  "devDependencies": {
    "nodemon": "^2.0.2"
  }
}

server.js
在这里插入图片描述

const Koa = require('koa')
const koaBody = require('koa-body')
const cors = require('koa-cors')
const httpPort = require('./config.js')
const server = new Koa()

let router = require('./router/index.js')

server.use(cors())
server.use((ctx, next) => {
  return next()
})
server.use(koaBody())
server.use(router.routes())

server.listen(httpPort.httpPort, () => {
  console.log('server is running localhost:' + httpPort.httpPort)
})

config.js
在这里插入图片描述
router/index.js
在这里插入图片描述

const router = new require('koa-router')()

let routes = require('./routes/index.js')
routes.forEach(r => {
  router.all(r.path, r.handle)
})

module.exports = router

router/routes/index.js
在这里插入图片描述

let getData = require('./getData.js')
let addData = require('./addData.js')

module.exports = [
  getData,
  addData
]

router/routes/addData.js (模拟 POST 接口)
在这里插入图片描述
发送 POST 请求:localhost:3000/add-message
即可成功请求 ‘/add-message’

// POST 请求 body里取参数

let database = require( '../../database/index.js')

async function handle(ctx, next) {
  let params = ctx.request.body
  if (params) {
    params.dateTime = new Date().toLocaleString()
    ctx.body = { data: params, status: 200, message: '成功' }
    database.addMessage(params)
  } else {
    ctx.body = { data: {}, status: 500, message: '参数错误' }
  }
}
module.exports = {
  path: '/add-message',
  handle
}

router/routes/getData.js (模拟 GET 请求)
在这里插入图片描述
发送 GET 请求:localhost:3000/get-message
即可成功请求 ‘/get-message’

// GET 请求 query 里取参数

let database = require('../../database/index.js')

async function handle(ctx, next) {
  let query = ctx.request.query
  let messageData = database.getMessage()
  ctx.body = { data: { messageData }, status: 200, message: '成功' }
}

module.exports = {
  path: '/get-message',
  handle
}

database/index.js (本地模拟数据库新增、获取数据)
在这里插入图片描述

let messageData = []

function addMessage(msg) {
  messageData.unshift(msg)
}
function getMessage() {
  return messageData
}

module.exports = { addMessage, getMessage }

README.md
在这里插入图片描述

# 一个Koa框架搭建的基本node服务

npm install



### 启动服务

npm start

node server.js


### 热更新启动

nodemon server.js


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值