首页 > 数据库 >nodejs koa 用knex.js链接mysql数据库,进行数据增删改查

nodejs koa 用knex.js链接mysql数据库,进行数据增删改查

时间:2024-09-30 13:19:45浏览次数:9  
标签:const nodejs koa data return table async knex

1、knex.js安装

npm install knex

官方Installation | Knex.js中文文档 | Knex.js中文网

2、进行数据库链接

const knex = require('knex')({
    client: 'mysql2', 
    connection: {
        host: '127.0.0.1', // 地址
        user: 'root', // 账号
        password: '123456', // 密码
        database: 'demo', // 数据库
        options: {
           port: 3306 // 端口
        }
    }
});

3、封装增删改查方法

const knex = require('knex')({
    client: 'mysql2', 
    connection: {
        host: '127.0.0.1', // 地址
        user: 'root', // 账号
        password: '123456', // 密码
        database: 'demo', // 数据库
        options: {
           port: 3306 // 端口
        }
    }
});

// 增加
const create = async (table, data) => {
  return knex(table).insert(data, '*');
};

 
// 更新
const update = async (table, id, data) => {
  return knex(table)
    .where({ id })
    .update(data);
};

// 查询
const find = async (table, condition) => {
    return knex(table).where(condition);
  }
 
// 删除
const remove = async (table, id) => {
  return knex(table)
    .where({ id })
    .del();
};
// 批量新增

const batchInsert = async (table, data) => {
  return knex.batchInsert(table, data)
}

// 批量删除
const batchDelete = async (table, ids) => {
  return knex(table).whereIn('id', ids).del()
}

// 导出
module.exports = {
  create,
  update,
  remove,
  find,
  batchInsert,
  batchDelete,
  knex
};

4、在app.js中引入

onst Koa = require('koa');
const Router = require('koa-router');
const db = require('../config/knex')
// 创建Koa应用实例
const app = new Koa();
 
// 创建路由实例
const router = new Router();
 
// 定义接口路由
    // 增加
    router.post('/api/user/add', async (ctx) => {
       const { username, password, mobile } = ctx.request.body
       try {
            const result = await db.create({
                username,
                password,
                mobile, 
             }) 
            ctx.body = { msg: '新增成功',code: 200 }
        } catch (error) { 
            ctx.body = { msg: '新增失败',code: 400 }
        }
     });
     
 
// 使用路由中间件
app.use(router.routes());
app.use(router.allowedMethods());
 
// 启动服务
app.listen(3000, () => {
  console.log('Server is running on http://localhost:3000');
});

标签:const,nodejs,koa,data,return,table,async,knex
From: https://blog.csdn.net/weixin_52380389/article/details/142654414

相关文章

  • nodejs
    IntroductionForNodejsbaseonv8engine,andsignalthread,andasynconousI/O.基于v8,性能出色单线程,没有线程开销,没有多线程相关的复杂的问题(锁,池等,thesourceofbug.),隐藏了,其实node自己本身底层的实现有多线程池,只是上层不必考虑.异步I/O,不会浪费cpu等......
  • nodejs学习
    nodejs中的v8引擎模块一、promise钩子模块;二、垃圾回收模块;1、promise钩子包括:(1)onInit(callback)在promise创建时调用;(2)onSettled(callback)在fulfilled或rejected时调用;(3)onBefore(callback)在promise继续执行之前调用的回调;(4)onAfter(callback)在promise继续执行之后调......
  • 基于nodejs+vue心里咨询与诊断平台系统[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着社会节奏的加快与生活压力的增大,心理健康问题日益凸显,成为影响公众生活质量的重要因素。传统心理咨询服务受限于地域、时间以及资源分配不均等问题,难以......
  • 基于nodejs+vue鞋类秒杀商城[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展和电子商务的日益普及,线上购物已成为现代人不可或缺的生活方式之一。在鞋类消费领域,消费者对于时尚、品质与性价比的追求日益增强,......
  • 基于nodejs+vue携手助学助学交流平台[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在当今社会,教育资源的不均衡分配问题日益凸显,尤其是在偏远地区及经济欠发达地区,优质教育资源的匮乏成为了制约学生成长与发展的关键因素。随着互联网技术的......
  • 基于nodejs+vue协同过滤音乐网站[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着数字音乐产业的蓬勃发展,音乐网站已成为人们日常生活中不可或缺的一部分。然而,面对海量的音乐资源,如何高效、精准地为用户推荐符合其个人喜好的音乐成为......
  • 通过构建具有依赖关系的后端框架来学习 Nodejs
    我在github上为每个尝试涉足后端开发世界(不仅仅是Node.js)的人创建了一本开源(免费)书籍您还可以在本书的网站上以更易于理解的方式访问内容-CacheLane-LearnNode.jstheHardWay这将需要很长时间来构建完成版本(几个月),但不用担心,我已经承诺并承诺每天都会添加新内容。因此,即......
  • 通过示例在 Unity 和 NodeJS 上的游戏中创建安全、快速的多人游戏
    介绍规划多人游戏开发方法-在整个项目的进一步开发中发挥着最重要的作用之一,因为它包含了我们在创建真正高质量的产品时应该考虑的许多标准。在今天的宣言教程中,我们将看一个方法示例,该方法使我们能够创建真正快速的游戏,同时尊重所有安全和反违规规则。所以,让我们定义我们的主要......
  • 解决 Nodejs 中的“Punycode Module is Deprecated”问题
    大家好,我叫asimkhan,目前是metamelon的全栈开发人员。最近,我在为naseebi.com(一个婚姻移动和web应用程序)项目工作时遇到了一个令人沮丧的问题。该问题涉及node.js中punycode模块的弃用,我想与您分享我的经验和解决方案。问题在应用程序中使用配置文件创建功能时,我......
  • 文件系统:Nodejs `fs` 模块
    node.js中的fs(文件系统)模块是一个用于处理文件系统的强大工具,允许您与服务器上的文件和目录进行交互。它内置于node.js中,因此您无需安装任何额外的东西即可使用它。让我们来探讨一下fs的工作原理及其关键功能。1.什么是fs模块?fs模块提供了一个api,用于以紧密围绕标准......