代码地址:https://download.csdn.net/download/qq_40890727/13583192
第一次安装nestjs,win+r,cmd进入命令窗口,执行:
npm i -g @nestjs/cli
项目创建
在workplace路径下进入cmd,执行
nest new project-name
整个项目结构是这样的:
主要的文件主要是
src
├── app.controller.ts 带有单个路由的基本控制器示例
├── app.module.ts 应用程序的根模块
└── main.ts 应用程序入口文件。包含一个异步函数,使用 NestFactory 用来创建 Nest 应用实例,负责引导我们的应用程序
添加模块
可以通过命令行来生成文件
创建controller层,执行:nest g co login login
创建module层,执行:nest g mo login login
创建service层,执行:nest g s login login
连接数据库
数据库用的是MySQL,连接数据库的工具有Sequelize和typeORM。这里使用的是typeORM
创建数据库
在数据库可视化工具里创建数据库表信息:
CREATE TABLE `account` (
`age` int(11) NOT NULL,
`status` int(11) NOT NULL,
`uid` int(11) NOT NULL AUTO_INCREMENT,
`uname` varchar(500) NOT NULL,
`passwd` varchar(255) NOT NULL,
`passwrd_salt` varchar(255) NOT NULL,
`gender` varchar(255) NOT NULL,
`phone` varchar(255) NOT NULL,
PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
数据库样式为:
typeORM
1:导入依赖
在项目路径下执行:npm add @nestjs/typeorm typeorm mysql -S
2:创建实体类
在src下创建目录:entity:里面存放你的实体类相当于Java的domain。
在src/entity下创建一个Account.ts文件,里面是表account的映射对象
import {
type } from 'os';
import {
Entity, Column, PrimaryGeneratedColumn, OneToOne, JoinColumn, OneToMany, ManyToOne} from 'typeorm';
@Entity()
export class Account {
@PrimaryGeneratedColumn()
uid: number;
@Column()
uname: string;
@Column()
age: number;
@Column()
gender: string;
@Column()
phone: string;
@Column()
passwd: string;
@Column()
status: number;
@Column()
passwrd_salt: string;
}
3: 创建连接池
import {
Module } from '@nestjs/common';
import {
AppController } from './app.controller';
import {
AppService } from './app.service';
import {
LoginController } from './login/login.controller';
import {
LoginModule } from './login/login.module';
import {
TypeOrmModule }