定义模型生成数据表

server/2025/3/18 20:47:33/

1. 数据库配置

```js

import { Sequelize, DataTypes } from 'sequelize';

// 创建一个 Sequelize 实例,连接到 SQLite 数据库

export const sequelize = new Sequelize('test', 'sa', "123456", {

    host: 'localhost',

    dialect: 'sqlite',

    storage: './blog.db'

});

```

2. 模型定义

```js

import { DataTypes } from 'sequelize';

import { sequelize } from '../db/sequelize.js';

export const Blog = sequelize.define("blog", {

    title: {

        type: DataTypes.STRING,

        allowNull: false

    },

    author: {

        type: DataTypes.STRING,

        allowNull: false,

    }

});

```

3. 实现增删改查操作:

  ```js

  let fn_getById = async (ctx, next) => {

      let id = ctx.params.id || 0;

      let blog = await Blog.findByPk(id);

      ctx.render('blogsAddOrEdit.html', { blog });

  }

  ```

  - 使用 `Blog.findByPk(id)` 查询指定 ID 的博客。

  - 将结果渲染到 `blogsAddOrEdit.html` 模板。

  ```js

  let fn_add = async (ctx, next) => {

      let obj = ctx.request.body;

      await Blog.create(obj);

  }

  ```

  - 使用 `Blog.create(obj)` 创建新的博客记录。

  ```js

  let fn_update = async (ctx, next) => {

      let id = ctx.params.id || 0;

      let obj = ctx.request.body;

      await Blog.update(obj, { where: { id: id } });

      ctx.body = '修改成功';

  }

  ```

  - 使用 `Blog.update(obj, { where: { id } })` 更新指定 ID 的博客。


 

  ```js

  let fn_del = async (ctx, next) => {

      let id = ctx.params.id || 0;

      await Blog.destroy({ where: { id: id } });

      ctx.body = '删除成功';

  }

  ```

  - 使用 `Blog.destroy({ where: { id } })` 删除指定 ID 的博客。







 


http://www.ppmy.cn/server/176048.html

相关文章

第十五届蓝桥杯C/C++B组拔河问题详解

解题思路 这道题目的难点在于枚举所有区间,并且区间不能重合,那么这样感觉就很难了。但是用下面这种方法就会好很多。 我们只需要将左边的所有区间的各种和放在一个set中,然后我们在枚举右边的所有区间的和去和它进行比较,然后…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_13可展开行的固定表头表格

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_13可展开行的固…

Java---网络初识

本文章用于理解网络中的各个关键字 1.IP地址 : 用于标识网络主机,和其他网络设备的网络地址 比如我们发快递时,需要知道对方的地址才能将包裹发送给他 格式: IPv4: IP地址是32位二进制数,如&#xff1…

淘宝/天猫获得淘宝商品评论 API 返回值说明

item_review-获得淘宝商品评论 taobao.item_review 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item…

ZooKeeper的五大核心作用及其在分布式系统中的关键价值

引言 在分布式系统的复杂架构中,协调多个节点的一致性、可靠性和高可用性始终是技术挑战的核心。​Apache ZooKeeper作为业界广泛采用的分布式协调服务,凭借其简洁的树形数据模型(ZNode)和高效的原子广播协议(ZAB&…

【Node.js入门笔记6---fs流(Streams)与管道(Pipe)】

Node.js入门笔记6 Node.js---fs 流(Streams)与管道(Pipe)一、流(Streams)与管道(Pipe)1.fs.createReadStream():创建可读流,逐块读取文件。逐块读取文件内容&…

四道Dockerfile练习

一、编写Dockerfile,ubuntu_18.04:v3 要求: 1、基础镜像ubuntu:18.04。 2、替换为国内的安装源(比如阿里或163)。 3、安装openssh-server。 4、允许root用户远程登录。 5、暴露端口22。 6、服务开机自启…

c++图论(二)之图的存储图解

在 C 中实现图的存储时,常用的方法包括 邻接矩阵(Adjacency Matrix)、邻接表(Adjacency List) 和 边列表(Edge List)。以下是具体实现方法、优缺点分析及代码示例: 1. 邻接矩阵&…