egg3.0连接egg-mongoose插入一条数据、插入多条数据

news2025/1/11 6:01:30

插入一条数据

app/router.js

'use strict';

/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller } = app;
  router.get('/', controller.home.index);
  router.get('/role', controller.role.index);
  router.post('/role/add', controller.role.addUser);
  router.post('/roles', controller.rolePost.index);
};

app/model/role.js

module.exports = app => {
  const mongoose = app.mongoose;
  const Schema = mongoose.Schema;
  // 连接数据库,创建Schema(模式)对象
  const UserSchema = new Schema({

    name: { type: String },
    id: { type: String },
  });

  // 通过Schema创建Model,Model 代表的是数据库中的集合,通过Model才能对数据库进行操作
  // 第一个参数模型
  // 第二个参数 数据
  // 第三个参数  操作的数据集合(表)

  // 映射
  return mongoose.model('Role', UserSchema, 'user');

};

app/service/role.js

'use strict';
const Service = require('egg').Service;

class RoleService extends Service {
  async findRoleList() {
    const { ctx } = this;
    try {
      // 説明ctx.model.Role中的Role為model目錄下文件的首字母大写
      const results = await ctx.model.Role.find();
      return results;
    } catch (err) {
      return JSON.stringify(err);
    }
  }

  async addItem() {
    const { ctx } = this;
    try {
      // 説明ctx.model.Role中的Role為model目錄下文件的首字母大写
      let results;
      await ctx.model.Role.create({ name: 'test-SA', id: '20230424112112' }).then(res => {
        console.log('results-pro', res);
        results = true;
      }).catch(err => {
        console.log('results-prm', err);

        results = false;
      });
      return results;
    } catch (err) {
      return JSON.stringify(err);
    }
  }
}
module.exports = RoleService;

app/controller/role.js

'use strict';

const { Controller } = require('egg');

class RoleController extends Controller {
  // 查询数据
  async index() {
    const { ctx } = this;
    const res = await ctx.service.role.findRoleList();
    console.log('res', res);

    ctx.body = res;
  }

  // 添加数据
  async addUser() {
    const { ctx } = this;
    const res = await ctx.service.role.addItem();
    console.log('controller', res);
    ctx.body = {
      code: res ? 0 : 4001,
      msg: res ? 'success' : 'fail',
    };
  }
}

module.exports = RoleController;

在这里插入图片描述

在这里插入图片描述

插入多条数据

 async bitch_add() {
    const { ctx } = this;

    try {
      let results;
      await ctx.model.Role.insertMany([
        {
          name: '木子',
        },
        {
          name: '木子1',
        },
        {
          name: '木子2',
        },
        {
          name: '木子3',
        },
      ]).then(res => {
        console.log('bitch_add', res);
        results = true;
      }).catch(err => {
        results = false;
      });
      return results;
    } catch {
      return JSON.stringify(err);
    }
  }

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/457692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ChatGPT】如何用十分钟部署一个属于自己的chatgpt网站

💖 作者简介:大家好,我是Zeeland,全栈领域优质创作者。📝 CSDN主页:Zeeland🔥📣 我的博客:Zeeland📚 Github主页: Undertone0809 (Zeeland) (github.com)&…

【两个月算法速成】day03-链表

目录 203. 移除链表元素 题目链接 思路 代码 206. 反转链表 题目链接 思路 代码 总结 203. 移除链表元素 题目链接 力扣 思路 如下图所示就是移除链表的过程 但是值得注意的是,移除头节点和其他位置的节点是不一样的,以为头结点前面没有节点。…

每日学术速递4.24

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Collaborative Diffusion for Multi-Modal Face Generation and Editing(CVPR 2023) 标题:多模态人脸生成和编辑的协同扩散 作者:Ziqi Huang, Kelvin C.K. …

Vue3进阶使用详解(node.js、Vue3路由基础项目、axios的使用详细(实现数据分页---前后端分离)、axios加载失败)

Vue3进阶使用详解(node.js、Vue3路由基础项目、axios的使用详细(实现数据分页—前后端分离)、axios加载失败) Vue cli CLI是Commond-Line Interface,翻译为命令界面,又称脚手架。VueCLI是一个官方发布vue.js项目脚手架。使用VueCLI可以快速搭建vue开发…

【IAR工程】STM8S基于ST标准库读取DHT11数据

【IAR工程】STM8S基于ST标准库读取DHT11数据 ✨申明:本文章仅发表在CSDN网站,任何其他网站,未注明来源,见此内容均为盗链和爬取,请多多尊重和支持原创!🍁对于文中所提供的相关资源链接将作不定期更换。&…

HTTP协议 GET和POST区别 请求响应 Fiddler postman ajax

💖 欢迎来阅读子豪的博客(JavaEE篇 🤴) 👉 有宝贵的意见或建议可以在留言区留言 💻 欢迎 素质三连 点赞 关注 收藏 🧑‍🚀码云仓库:补集王子的代码仓库 不要偷走我小火…

Mac下nvm安装使用

​欢迎光临我的博客查看最新文章: https://river106.cn 1、简介 nvm 是 Mac 下的 node.js 管理工具。可以通过 nvm 安装和切换不同版本的 node.js。 官网:https://nvm.uihtm.com/ github:https://github.com/nvm-sh/nvm 2、安装 curl -o- https://raw…

移动端适配rem方案

做移动端的适配我们就是要考虑,对于不同大小的手机屏幕,怎么动态改变页面布局中所有盒子的宽度高度、字体大小等。 这个问题我们可以使用相对单位rem。 那么什么是 rem? rem(font size of the root element)是指相对…

Linux-中断和时间管理(上)

目录 中断的进入过程 中断的进入过程 为方便实验,本章以配套的目标板 FS4412为例来介绍 Linux 的中断子系统,并且编写相应的中断处理程序。FS4412 上的处理器是 SAMSUNG公司的 Exynos4412,该处理器使用的是4核的 Cortex-A9,&…

c++Lambda匿名函数

cLambda匿名函数 (1) 定义a. [外部变量方位方式说明符]b. (参数)c. mutabled.noexcept/throw()e.->返回值类型f.函数体 2)c11中的拉姆达表达式中的()可以省略吗 所谓匿名函数,简单地理解就是没有名称的函…

《C++ Primer Plus》(第6版)第17章编程练习

《C Primer Plus》(第6版)第17章编程练习 《C Primer Plus》(第6版)第17章编程练习1. 计算输入流中第一个\$之前的字符数目2. 将键盘输入(直到模拟的文件尾)复制到通过命令行指定的文件中3. 将一个文件复制…

完全免费的基于区块链和 IPFS 的去中心化博客平台

一、前言 xLog是一个基于Crossbell区块链的博客解决方案,专注于Web3数据由用户掌控。Crossbell是一个基于Web3技术的去中心化博客平台,用户可以在该平台上发布文章并进行交流和创作。社区提供多种交流平台和有奖创作活动。 xLog是基于 Crossbell 区块链…

【AI回复】“我问它,你对五一调休怎么看”

前言 马上就要到五一啦,放假打算去哪里玩呢? “我肯定是宅在家里写博客啊” 最近五一调休在某博上引起大家的共鸣,看了评论那叫一个惨不忍睹哇。 因为我比较对AI感兴趣,所以想看看它是怎么看待调休的。 首先,在百度…

【UE】简易的水材质

引擎版本:4.26 效果 步骤 1. 创建一个材质,命名为“M_Water” 2. 打开“M_Water”,将混合模式设为半透明, 光照模式设为表面半透明体积,在这种模式下我们可以使用金属度、粗糙度等接口 3. 创建一个4维常量节点&…

Android 基于NumberPicker自定义弹出窗口Dialog整合日期选择器

Android实现把年月选择器放到AlertDialog中_左眼看成爱的博客-CSDN博客 Android使用NumberPicker实现年月滚动选择器_左眼看成爱的博客-CSDN博客 前面两篇文章我们分别讲了 1,如何用NumberPicker实现年月选择器 2,如何把1中的用NumberPicker实现的年…

基于DE2-115平台实现VGA显示器的显示实验

目录 什么是VGA协议VGA显示原理VGA时序图VGA参数图实验记录准备PLLROM取模代码data_drive.vkey_debounce.vvga_drive.vvga_top.v 实验现象 什么是VGA协议 这一部分摘录自野火的征途Pro《FPGA Verilog开发实战指南——基于Altera EP4CE10》2021.7.10(上)…

ctfshow web入门phpcve web311-315

1.web311 通过抓包发现php版本时为PHP/7.1.33dev 漏洞cve2019-11043 远程代码执行漏洞 利用条件: nginx配置了fastcgi_split_path_info 受影响系统: PHP 5.6-7.x,Nginx>0.7.31 下载工具进行利用 需要安装go环境 yum install golang -y …

一文技术解析ART虚拟机method tracing

一、method tracing介绍 概述 这个是谷歌提供的对java的函数级trace工具,和systrace只支持打点不同,method tracing能支持到函数,看到具体的函数执行时间,准确的分析出来执行的时间短板。 1.生成trace的方式 sampling方式&…

【数据结构初阶】第七节.树和二叉树的性质

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 一、树 1.1 树的概念 1.2 树的结点分类 1.3 结点之间的关系 1.4 树的存储结构 1.5 其他相关概念 二、 二叉树 2.1 二叉树的概念 2.2 特殊的二叉树 2.3 二叉树的性质 2.4…

快速上线chatGPT软件

ChatGPT是一个由OpenAI开发的自然语言处理模型,您无法将其直接上线。但是,如果您想要在您的应用程序中集成对话系统或聊天机器人,您可以探索以下步骤: 选择开发工具:选择一个适合您的编程语言和平台的开发工具&…