前言
上一篇介绍了如何创建项目、路由的访问以及如何创建模块,这篇来讲讲数据库的连接与使用。
既然是后端项目,当然要能连上数据库,否则还不如直接写静态页面。
本教程使用的是 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)进行单点登录。
本文来自博客园,作者:12day,转载请注明原文链接:https://www.cnblogs.com/12day/articles/15984428.html
浙公网安备 33010602011771号