一、在VScode新建一个server
1、全局安装nest:npm i -g @nestjs/cli
2、新建一个nest框架的服务器server:nest new server
3、在server文件目录下(cd server)新建一个名为admin的子目录:nest g app admin(admin作为后台接口,server作为app端接口)
在admin和server文件夹下均存在src和test子文件夹这里插入图片描述电脑
4、先启动项目运行admin:nest start -w admin
{
启动出现错误An async function or method in ES5/ES3 requires the ‘Promise’ constructor. Make sure you have a declaration for the ‘Promise’ constructor or include ‘ES2015’ in your --lib option.,如下图:
在这里插入图片描述
网上提供的解决方法:在tsconfig.json 里的compilerOptions下添加 “lib”: [“ES2015”]
以上方法并没有解决我的问题!但是我换了个新建路径就可以了 ,出错的哪一款是存储在d盘的,我重新在c盘新建了个server就可以运行了,我怀疑是由于我的vscode工作路径相关,具体原因后面再探究。}{以上错误是因为我把server放到了一个文件夹下所导致的,直接创建server就可以避免错误。
}

5.创建一个库lib,它独立于apps模块,lib中包含一个db模块,默认的前缀是@app,此处为了方便,更改为@libs
nest g lib db
chuangjian 创建库
6、将db模块引入admin模块的module中:

在这里插入图片描述
7、安装针对ts的数据库typegoose
npm add nestjs-typegoose @typegoose/typegoose

因为typegoose依赖于mongoose,所以安装 mongoose
npm add mongoose @types/mongoose

8、在db模块完成数据库连接添加一些必要的参数在这里插入图片描述
9、在libs目录下创建一个新的文件夹models,用来存放所有的数据库模型
然后在models文件夹下创建一个user.model.ts文件,假设user模块中有两个属性:username和password,文件内容:

// user.model.ts
import { prop } from '@typegoose/typegoose'

export class User{
    @prop()
    username:string

    @prop()
    password:string
}

10、
将user模型与db.module.ts相关联

// 将user模型与db.module.ts相关联
import { Module, Global } from '@nestjs/common';
import { DbService } from './db.service';
import { TypegooseModule } from 'nestjs-typegoose';
import { User } from './models/user.model';

const models = TypegooseModule.forFeature([User])


@Global()
@Module({
  imports:[
    TypegooseModule.forRoot('mongodb://localhost/test',{
    useCreateIndex:true,
    useFindAndModify:false,
    useNewUrlParser:true,
    useUnifiedTopology:true,
  }),
    models,
  ],
  providers: [DbService],
  exports: [DbService,models],
})
export class DbModule {}

11、现在admin就可以直接使用user了,但是为了解耦和代码清晰,我们不将user放入app层级,而是在admin的src目录下新建一个子模块
nest g mo -p admin users 此处-p admin 用于指定user新建于admin子项目下
同时新建一个UserController
nest g co -p admin users co(控制器)

12、添加模块的 crud,crud这个接口可以实现增删查改
npm add nestjs-mongoose-crud

13、安装接口文档依赖
npm add @nestjs/swagger swagger-ui-express

14、代码后面再补充!

Logo

前往低代码交流专区

更多推荐