前言
技术是学无止境的,要想进步,就得尝试新东西并应用到实际工作中产生价值。
目前比较主流的后端语言是 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('服务开始运行'));