前言

上一篇介绍了如何创建项目、路由的访问以及如何创建模块,这篇来讲讲数据库的连接与使用。

既然是后端项目,当然要能连上数据库,否则还不如直接写静态页面。

本教程使用的是 cloudbase数据库,因为白嫖嘛哈哈啊哈哈哈哈。。。。。,其它数据库都是异曲同工!!!

一、cloudbase 准备

首先要确保你有数据库可以连接,如果没有,可以在 腾讯云创建一个。创建教程百度就行了,就不多说了!

下面是云开发数据库界面,我是已创建

我测试使用的是admin集合,你们随意,点进去:

 

二、项目的数据库配置

先在项目根目录创建一个文件夹 config(与 src 同级),专门放置各种配置。

然后新建一个文件 db.ts:

// config/db.ts
export const DB = {
  secretId: "AKIDhCRP6XhaCYdRyEExPaV9VaPzIL8droTs",
  secretKey: "91cwzlGUS8XeU3LM6Zz8zavykFYZJlxs",
  env: "resume-95c763",
  region: "ap-shanghai"
};

使用cloudbase需要安装

yarn add @cloudbase/node-sdk

然后在 src 目录下创建文件夹 database,然后再创建 init.ts

// src/database/sequelize.ts
import *as tcb from '@cloudbase/node-sdk'
import {DB} from "../../config/db"


const app = tcb.init({
  ...DB
});
export const db = app.database()

三、数据库连接测试

好了,接下来我们来测试一下数据库的连接情况。

我们重写 user.service.ts 的逻辑:

// src/logical/user/user.service.ts
import { Injectable } from "@nestjs/common";
import { db } from "../../database/init";
@Injectable()
export class UserService {
  /**
   * 查询用户是否存在
   * */
  async findOne(account: string): Promise<any | undefined> {
    if (!account) {
      return {
        code: 400,
        msg: "请输入用户名"
      };
    }
    try {
      const user = await db.collection("admin").where({
        account
      }).get();
      // 若查不到用户,则 user === undefined
      return user.data[0];
    } catch (err) {
      console.error(err);
      return void 0;
    }
  }
}

请求一下接口测试一下:

现查出来的数据和数据库里的一致,至此,MySQL 连接测试完成,以后就可以愉快的在 Service 里面搬砖了

总结

这篇介绍了 cloudbase的数据准备、配置、Nest 怎么连接上 ,以及用一条简单的查询语句去验证连接情况。

若想要使用seqlize+mysql去链接可以移步看这个大佬的文章图雀社区

下一篇,将介绍如何使用 JWT(Json Web Token)进行单点登录。

 

posted on 2022-03-09 11:45  12day  阅读(338)  评论(0)    收藏  举报