使用Koa和Node.js实现简单的CRUD API

作者:佚名 上传时间:2023-04-27 运行软件:Visual Studio Code 软件版本:Koa@2.13.1、Node.js v14.17.6、MongoDB v5.0.3 版权申诉

本示例通过Koa和Node.js实现了一个简单的CRUD API接口,包括对MongoDB数据库进行CRUD操作,其中包含了对post请求体进行解析和错误处理等功能。

const Koa = require('koa');
const Router = require('koa-router');
const bodyParser = require('koa-bodyparser');
const { MongoClient, ObjectId } = require('mongodb');

const app = new Koa();
const router = new Router();
const dbUrl = 'mongodb://localhost:27017';
const dbName = 'demo';
const client = new MongoClient(dbUrl);

app.use(bodyParser());

router.get('/api/users', async (ctx) => {
  const { limit, skip } = ctx.query;
  const db = client.db(dbName);
  const users = await db.collection('users').find().sort({ _id: -1 }).limit(+limit).skip(+skip).toArray();
  ctx.body = users;
});

router.get('/api/users/:id', async (ctx) => {
  const { id } = ctx.params;
  const db = client.db(dbName);
  const user = await db.collection('users').findOne({ _id: ObjectId(id) });
  ctx.body = user;
});

router.post('/api/users', async (ctx) => {
  const db = client.db(dbName);
  const result = await db.collection('users').insertOne(ctx.request.body);
  ctx.body = result.insertedId;
});

router.put('/api/users/:id', async (ctx) => {
  const { id } = ctx.params;
  const db = client.db(dbName);
  const result = await db.collection('users').updateOne({ _id: ObjectId(id) }, { $set: ctx.request.body });
  ctx.body = result.modifiedCount;
});

router.delete('/api/users/:id', async (ctx) => {
  const { id } = ctx.params;
  const db = client.db(dbName);
  const result = await db.collection('users').deleteOne({ _id: ObjectId(id) });
  ctx.body = result.deletedCount;
});

app.use(router.routes());

client.connect().then(() => {
  app.listen(3000, () => console.log(`Server started on http://localhost:3000`));
});

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
使KoaNode.jsCRUD API
本示例通过Koa和Node.js实现了一个简单的CRUD API接口,包括对MongoDB数据库进行CRUD操作,其中包含了对post请求体进行解析和错误处理等功能。const Koa = requ
Koa@2.13.1、Node.js v14.17.6、MongoDB v5.0.3
Visual Studio Code
2023-04-27 17:05
simple node crud restapi使用Node.js简单实现Restful API CRUD源码
简单节点CRUD RESTful API 使用Node.js简单实现Restful API CRUD
ZIP
12KB
2021-03-29 20:05
node crud Node.jsKoa加MySQL CRUD示例源码
koa + mysql todo应用 样例项目演示了crud的操作。 先决条件 您需要安装mysql并设置适当的用户来运行演示。 mysql快速参考 安装: $ brew install mysql
ZIP
28KB
2021-04-08 23:28
api crud nodejs CRUD API REST NODE.JS源码
api-crud-nodejs CRUD API REST-NODE.JS原始数据存储库是MySQL的基础。 实现node.js的功能,表示COMO框架和Para模板的把手。 先决条件 Node.js
ZIP
50KB
2021-04-01 08:10
koa rest api boilerplate Node用于DockerSwaggerJestCodeCovCircleCINode.js Koa RES
Koa REST API样板 适用于具有Docker,Swagger,Jest,CodeCov和Circle CI的Node.js Koa RESTful API应用程序的样板 Koa REST AP
ZIP
156KB
2021-02-01 22:16
gostack crud projects node使用Node.js进行CRUD源码
用Express进行CRUD Primeiro projeto criado com Node.js e Express,cruçãode projetos utlizando阵列,apenas pa
ZIP
1.55MB
2021-03-29 20:33
LocationApp Node.js使用React.js表达Crud API源码
带有Nodejs和Express框架的RestFullAPİ 先决条件 MongoDB Nodejs İnstalland Run npm安装 npm开始 供测试用: npm测试
ZIP
380KB
2021-02-19 18:00
Node.js使用Node.jsWebSockets实现聊天App
使用Node.js和WebSockets实现的聊天App
其他文档
0B
2019-09-20 16:26
Node.js使用Koa搭建基础项目
时下前端工程师有很多人比较关注NodeJs以及express 框架或者Koa 框架之类的新技术。难得我最近闲时较多,利用一下旧历新年尚未正式到来的这片闲暇,也来涉足其中,一窥其中奥妙。
PDF
73KB
2020-10-28 07:58
node api使用Node.js ExpressPostgreSQLREST API源码
使用Node.js,Express和PostgreSQLREST API 安装与开发 克隆仓库并创建.env文件 git clone https://github.com/jorgeveranet/n
ZIP
72KB
2021-03-21 02:45