nestjs+typegoose+vuejs全栈项目服务器开发(server)学习记录一
一、在VScode新建一个server1、全局安装nest:npm i -g @nestjs/cli2、新建一个nest框架的服务器server:nest new server3、在server文件目录下(cd server)新建一个名为admin的子目录:nest g app admin(admin作为后台接口,server作为app端接口)电脑4、先启动项目运行admin:nest start
一、在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端接口)
电脑
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
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、代码后面再补充!
更多推荐
所有评论(0)