Tobenew

Tobenew 查看完整档案

深圳编辑湖北理工学院  |  电子信息工程 编辑深圳市双佳医疗科技有限公司  |  前端开发工程师 编辑填写个人主网站
编辑
_ | |__ _ _ __ _ | '_ \| | | |/ _` | | |_) | |_| | (_| | |_.__/ \__,_|\__, | |___/ 个人简介什么都没有

个人动态

Tobenew 发布了文章 · 2020-02-29

在mongoDB官网申请500M免费线上数据库

注册账户

https://account.mongodb.com/a...

登录网站

https://account.mongodb.com/a...

第一次进去应该是这样,等待一会会跳转这样的界面

  • 选择最左边免费的 点击 Create a cluster
  • 跳转到选择服务器地区,什么都不用改,直接点击最下面的 Create cluster

  • 等待系统创建工程

  • 等待系统工程创建好了是这样的

修改数据库ip白名单配置

  • 点击 Network Access 中的 ADD IP ADDRESS 添加可访问的IP

  • 选择允许所有人访问 然后确认

  • 等待配置更新

  • 配置完毕

获取数据库连接地址

  • 点击Clusters切回数据库界面,点击CONNECT

  • 添加数据库登录名和密码 我这里都设置为root

  • 创建root用户成功,点击下一步 选择连接方式

  • 选择中间的那个


*点击中间的 copy 就可以获得数据库的连接地址了

mongodb+srv://root:<password>@cluster0-bujei.mongodb.net/test?retryWrites=true&w=majority

要记得把 <password>更改为你之前设置的root用户密码才能使用


这里的test是你后面应用创建的数据库名字,可修改
比如我创建一个名字为 nest-api 的数据库,最终可用地址应该为

mongodb+srv://root:root@cluster0-bujei.mongodb.net/nest-api?retryWrites=true&w=majority
查看原文

赞 0 收藏 0 评论 0

Tobenew 发布了文章 · 2020-02-29

手把手教你用nestjs框架7分钟生成crud风格接口

1.安装nest.js框架

nest.js官方开发文档

  • 全局安装nest框架
npm i -g @nestjs/cli

2. 新建一个nestjs项目

nest new nest-api

image.png

选择是用npm还是yarn装依赖,我是直接回车选择npm

如果觉得慢此处可以取消,用vscode打开nest-api项目

终端再来安装依赖

npm i

image.png

等待安装完成

npm run start

image.png
如果是这样,则项目是成功跑起来的

3. 新建一个公共库文件,用来放mongose数据库的设计model

nest g lib db @libs

image.png

输入@libs 回车

image.png

此时应该多了一个libs文件夹

image.png

4. 安装nest数据库依赖

npm i nestjs-typegoose @typegoose/typegoose mongoose @types/mongoose nestjs-mongoose-crud @nestjs/swagger swagger-ui-express

5. 创建user表的model

  • 在libs/src 目录下新建 models 文件夹,然后在models文件夹下新建 user.model.ts 的ts文件

image.png

  • 在文件里写入如下代码
import { prop, modelOptions } from '@typegoose/typegoose';
  import {ApiProperty} from '@nestjs/swagger';

  // 给添加的数据加入时间戳
  @modelOptions({
    schemaOptions:{
    timestamps:true
    }
})
  
  export class User{
  
  @ApiProperty({description:'用户名',example:'user1'})
  
    @prop()
  
    username: string
  
    @ApiProperty({description:'密码',example:'password1'})
    @prop()
  
    password: string
    
  }

6. 用nest命令创建users文件夹

 nest g mo -p users users
 nest g co -p users users

image.png

  • 然后在users/users.controller.ts 里写入控制代码
 import { Controller } from '@nestjs/common';
  import { InjectModel } from 'nestjs-typegoose';
  import {User} from '@libs/db/models/user.model'
  import { Crud } from "nestjs-mongoose-crud";
  import {ApiTags} from '@nestjs/swagger'
  
  @Crud({
    // User采用增删改查接口模式
    model:User
  })
  
  @Controller('users')
  @ApiTags('用户')
  export class UsersController {
    // 注入User模型
    constructor(@InjectModel(User) private readonly model){}
  }

7.在libs/db/src/db.model.ts里配置db

  • db.model.ts 写入如下代码
  • 注意!此处用的是本人数据库地址,请自行申请一个免费线上数据库地址,或者自己的本地mongoDB数据库地址
  • 如何申请线上数据库 请移步 https://segmentfault.com/a/11...

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+srv://root:root@cluster0-bujei.mongodb.net/nest-api?retryWrites=true&w=majority
',
        {
          useCreateIndex: true,
          useUnifiedTopology: true,
          useNewUrlParser: true,
        useFindAndModify: false,
        },
    ),
      models,
  ],
    providers: [DbService],
  exports: [DbService, models],
  })
  export class DbModule {}

8.在根目录的src/app.module.ts 里引用db 以及users

  • 写入如下代码
 import { Module } from '@nestjs/common';
  import { AppController } from './app.controller';
  import { AppService } from './app.service';
  import { DbModule } from '@libs/db';
  import { UsersModule } from './users/users.module';
  
  @Module({
    imports: [DbModule, UsersModule],
    controllers: [AppController],
    providers: [AppService],
  })
  export class AppModule {}

9.在main.ts里面配置swagger 以及启动端口

  • 根目录src/main.ts 里面写入如下代码
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.enableCors();
  const options = new DocumentBuilder()
    .setTitle('nest后台API')
    .setDescription('供后台管理界面调用的服务端API')
    .setVersion('1.0')
    // .addTag('cats')
    .build();
  const document = SwaggerModule.createDocument(app, options);
  SwaggerModule.setup('api-docs', app, document);

  await app.listen(3000);
  console.log('http://localhost:3000');
  console.log('http://localhost:3000/api-docs');
}
bootstrap();

10.启动后端服务

npm run start

image.png

如图就是启动服务成功了

http://localhost:3000 就是你的本地接口地址

http://localhost:3000/api-docs 就是你的本地接口文档地址

image.png

看,写简单crud接口就是这么简单

查看原文

赞 3 收藏 3 评论 0

Tobenew 关注了专栏 · 2020-02-28

前端笔记本

此后如没有炬火,我便是唯一的光?

关注 5939

Tobenew 关注了专栏 · 2020-02-28

我们一起进大厂

微信搜索:三太子敖丙

关注 6455

Tobenew 关注了用户 · 2020-02-28

chinamasters @chinamasters

本人岂是池中物!

关注 1247

Tobenew 关注了用户 · 2020-02-28

lzg9527 @michael_5c03399eed011

专注web前端开发,熟悉html5,css3,javascript,vue,react

关注 7595

Tobenew 关注了用户 · 2020-02-28

阿山 @a_shan

一只英语专业的程序猿

微信公众号:GitWeb

微信交流群:公众号内加好友(备注思否),拉你进群

关注 2894

Tobenew 关注了专栏 · 2020-02-28

猪哥python

微信搜索:裸睡的猪

关注 2667

Tobenew 关注了专栏 · 2020-02-28

新亮笔记

技术的深度和广度只能靠自己努力去发掘,谁也不能替你学习,在这里希望你能有所收获。

关注 939

Tobenew 关注了专栏 · 2020-02-28

终身学习者

我要先坚持分享20年,大家来一起见证吧。

关注 48740

认证与成就

  • 获得 3 次点赞
  • 获得 1 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 1 枚铜徽章

擅长技能
编辑

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2020-02-28
个人主页被 206 人浏览