毕设第六周记录

周六、日

下载安装mongodb:

一般下载的为社区版 Mongodb官网.
1.下载安装压缩包
在这里插入图片描述

2.开始安装,点击next
在这里插入图片描述
3.点击complete
在这里插入图片描述

在这里插入图片描述Mongodb一般放在 C:\Program Files 路径下
点击next,然后等待安装。

配置Mongodb

1.打开本电脑的高级系统设置,配置Mongodb的环境,在系统变量里点击path,
在这里插入图片描述
2.点击新建,把bin的路径复制过来,点击确认。
在这里插入图片描述

启动Mongodb

1.输入命令,

mongod.exe

在这里插入图片描述

创建数据目录:

MongoDB将数据目录存储在db目录下。但是这个数据目录不会主动创建,我们在安装完成后需要创建它。

我的目录是C:\Program Files\MongoDB\data\db,其中db文件夹也需要创建,其不会自动生成
方法:手动创建文件夹:C:\Program Files\MongoDB\data\db
运行命令:

 mongod.exe --dbpath C:\Program Files\MongoDB\data\db

检查是否可以连接

在浏览器输入http://localhost:27017 (27017是mongodb的端口号)查看,若显示:
在这里插入图片描述

配置本地windows mongodb 服务

1.先在data文件下创建一个新文件夹log(用来存放日志文件)
在这里插入图片描述
2.创建.config配置文件
在Mongodb新建配置文件mongo.config

先创建一个mongo.txt文件,再打开,点击”另存为“,将底下的文件类型更改为”全部类型“,并更改文件名称为mongo.config。

这样就可以创建一个config的配置文件了。
在这里插入图片描述
3.用记事本打开mongo.config ,并输入:


dbpath=C:\Program Files\MongoDB\data\db

logpath=C:\Program Files\MongoDB\data\log\mongo.log

4.配置windows服务:

cmd先跳转到 C:\Program Files\MongoDB\Server\5.0\bin目录下。

输入:

mongod --config "C:\Program Files\MongoDB\mongo.config" --install --serviceName "MongoDB"

在这里插入图片描述

即根据刚创建的mongo.config配置文件安装服务,名称为MongoDB。
5.打开计算机管理,查看服务列表

在这里插入图片描述
至此安装完成

周一

Typegoose

我们已经把接口架构搭建好了,接下来用数据库保存帖子,创建与保存数据,这里将会用到Typegoose,
Typegoose: link.
里面有关于官方文档的解说

在这里插入图片描述

import { prop, getModelForClass } from '@typegoose/typegoose';
import * as mongoose from 'mongoose';

class User {  //user表结构
  @prop() //装饰器,表示下面的属性定义为mongoose的字段
  public name?: string;

  @prop({ type: () => [String] })
  public jobs?: string[];
}

底层依旧是mongoose,上层用了面向对象的方式。

点击红框里的网址,里面可以参考有关版本的一些教程
在这里插入图片描述
1.安装语法,在终端啊输入:

npm i @typegoose/typegoose

在这里插入图片描述
2.安装好之后,我们需要在入口处(main.ts)连接数据库
在这里插入图片描述

3.连接好后,我们需要建立模型文件post.model.ts
在这里插入图片描述

import { getModelForClass, prop } from '@typegoose/typegoose'
 
export class Post{
    @prop()
    title:string
    @prop()
    conent:string
}
export const PostModel = getModelForClass(Post)

在这里插入图片描述
注释:
1.定义表结构:两个字段,title和conent,
@prop表示字段定义,在()里可以传递参数,比如default、set、select等
2.定义模型:用getModelForClass的方法,传进去表结构的类,Post Model就成为一个帖子模型。

周二

查看帖子

1.定义好模型之后,我们需要打开posts.controller.ts,将帖子列表换为模型的查询,需要用到await ,然后方式是异步的,
在这里插入图片描述
2.当框架定义好之后,我们只需要把内容改为数据库的查询就可以了,接口框架不变,
在这里插入图片描述

创建帖子

1.我们需要打开posts.controller.ts,将创建帖子换为模型的创建,需要用到await ,然后方式是异步的,

在这里插入图片描述

    @Post()
    @ApiOperation({summary:'创建帖子'})
    async create(@Body()createPostDto:CreatePostDto){
        await PostModel.create(createPostDto)
        return {
            success:true
        }
    
   }

2.在http://localhost:3000/api-docs中,点击创建帖子,执行之后,返回了如下信息:
在这里插入图片描述

3.点击帖子列表,刷新之后,会发现新建了数据
在这里插入图片描述
4.因为之前有数据建立,为了区别,在posts.controller.ts中,修改代码:建立实例
在这里插入图片描述
5.刷新之后,发现内容已经更改:

在这里插入图片描述
在这里插入图片描述
6.有了实例之后,点击执行,刷新帖子列表之后,发现新数据
在这里插入图片描述

7.打开http://localhost:3000/posts后,得到如下结果:

在这里插入图片描述
说明运行成功

周三

Get数据

在帖子详情中,复制得到的真实id,可以取得数据库中的数据,修改代码:
在这里插入图片描述
代码如下:

    @Get(":id")
    @ApiOperation({summary:'帖子详情'})
    async detail(@Param('id')id:string){
        return await PostModel.findById(id)
    }
    

复制得到的真实id例如
在这里插入图片描述

在这里插入图片描述
执行后,从数据库中取得:
在这里插入图片描述

Update数据

在编辑帖子中,输入id,修改title和content的内容:
在这里插入图片描述
修改代码:
在这里插入图片描述
点击excute后,可以发现在帖子列表中存在更新
在这里插入图片描述

删除数据

在删除帖子中,修改代码,用mongoose语言

    async remove(@Param('id')id: string){
        await PostModel.findByIdAndDelete(id)

在这里插入图片描述
例如,删除此条数据:
在这里插入图片描述
在delete里面复制id信息,点击执行
在这里插入图片描述
再次查看帖子列表:再无此条数据
在这里插入图片描述

周四

管道

在这里插入图片描述
从客户端到服务端,Get某个服务器端点的时候,要预先通过管道,我们需要加入各种东西让请求一步步通过管道,包括验证管道、数据格式转换的管道之类,最终到达接口。
而从接口返回客户端时候,通过一层层的过滤器,再到达客户端

1.在main里面开启全局验证:确保信息为必填选项:

使用全局管道:
在这里插入图片描述
2.终端提醒,我们需要安装一些包

npm i class-validator //用于验证
npm i class-transformer //用于数据格式转换

安装之后,程序正常运行
在这里插入图片描述
3.声明符合的验证;
引入class-validator包

import{ IsNotEmpty } from'class-validator'

IsNotEmpty声明title不为空,如果为空的话,会返回消息:填写标题

@IsNotEmpty({message:'请填写标题'})

在这里插入图片描述
4.创建帖子中,删除title并运行
发现报错:
在这里插入图片描述

下周计划

1.周末跑通一遍官方教程
2.整理信息,开始构建自己的项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值