Node.js 基于 Koa.js 开发增删改查接口

前言

技术是学无止境的,要想进步,就得尝试新东西并应用到实际工作中产生价值。

目前比较主流的后端语言是 Java,Node.js 比 Java 更容易被前端工程师接收,所以今天我们就尝试使用 Node.js 开发后端接口。

什么是 Node.js?

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。

搭建一个Node.js项目

创建并进入项目文件夹nodejs01,打开终端输入以下命令

npm init -y #初始化package.json文件

什么是 Koa.js

Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。

安装Koa.js

npm i koa

Koa.js常用中间件

koa-router

路由中间件,支持RestFul风格

koa-bodyparser

解析请求体中的json数据

koa2-cors

通常我们的应用都是前后端分享的,因为我们需要解决前端跨域问题。解决方法也很多,主要原理是通过设置HTTP Response Header的几个属性来实现。


注意Koa.js挂载中间件的顺序,通常cors需要挂载到第一个中间件,原因是Koa.js的中间件是洋葱结构,越先挂载的中间件越先执行。其实这些中间件我们自己手动实现也非常简单,但我们还是秉着有轮子就直接用的理念避免重复造轮子。

npm i koa-router koa-bodyparser koa2-cors

编写增删改查接口

创建index.js文件,接下来我们的代码全部写在index.js中。

const Koa = require("koa");
const Router = require("@koa/router");
const cors = require('koa2-cors');
const bodyParser = require("koa-bodyparser");
const router = new Router({ prefix: "/todo" });
const app = new Koa();
const Todos = [
  {
    id: 1,
    name: "任务1",
  },
];
router.post("/add", async (ctx) => {
  const { id, name } = ctx.request.body;
  Todos.push(id, name);
  ctx.body = { code: "ok", msg: "添加成功" };
});

router.put("/edit", async (ctx) => {
  const { id, name } = ctx.request.body;
  Todos.forEach(item=>{
	if(item.id == id){
	  item.name = name
	}
  })
  ctx.body = { code: "ok", msg: "修改成功" };
});

router.post("/remove/:id", async (ctx) => {
  const { id } = ctx.params;
  Todos = Todos.filter((item) => item.id != id);
  ctx.body = { code: "ok", msg: "删除成功" };
});

router.get("/list",async(ctx)=>{
	ctx.body = Todos
})

app.use(cors()).use(bodyParser()).use(router.routes()).use(router.allowedMethods()).listen(3000,()=>console.log('服务开始运行'));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值