分享更有价值
被信任是一种快乐

node中如何使用Nest.js连接MongoDB数据库

文章页正文上

node中如何使用Nest.js连接MongoDB数据库,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在学习 Nest 与数据库进行连接时,难免会遇到选择数据库的问题,这里作者选择的是 MongoDB 记录一下简单使用。 大家可以根据不同需求选择合适的数据库。MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。目前市面上有很多成熟的数据库可供大家选择。据翻看各种资料作者这里得出的结论为大项目用 PostgreSql 小项目用 MongoDB 所以作者准备一起学习下,这次因为想做一个小项目练练手所以先用 MongoDB 看看怎么样。大家有不同看法欢迎在评论区讨论。确保电脑已经安装了 MongoDB 没记得弄完做一下环境配置,可以开机自启, 也可以选择自己启动哈hhh看个人简单介绍一下 , Mongoose 是一个操作 MongoDBNodejs 驱动库MongoDB 是数据库,Nodejs 是js的一个运行环境,Nodejs 不直接操作 Mongodb,这个时候就需要相应的驱动程序来提供接口。在 Nest 项目中安装一下依赖项,两种安装方式,自行选择安装完成后我们在 AppModule 文件中引入一下这里用一个 User 模块来做 demo这里我理解的基础功能模块包括 module(模块) Controller(控制器) Service(提供者) Schema(数据模型) 我们主要是用 Nest对 MongoDB 做增删改查 这几个模块目前暂时够用。对这几个模块做一些简单介绍:由于我们上面已经对 app.module.ts 该根模块已经引入过了 mongoose 所以下面我们之间看一下功能模块是怎样的在Mongoose中,一切都源于 Scheme,每个 Schema 都会映射到 MongoDB 的一个集合,并定义集合内文档的结构。Schema 被用来定义模型,而模型负责从底层创建和读取 MongoDB 的文档。Schema 可以用 NestJS 内置的装饰器来创建,或者也可以自己动手使用 Mongoose的常规方式。使用装饰器来创建 Schema 会极大大减少引用并且提高代码的可读性。这里作者用的是官方推荐方式用装饰器来创建,毕竟用的是 Nest 不得用点特色的hhh。等下和其他功能一起在 Module 中引入。控制器的目的是接收应用的特定请求。路由机制控制哪个控制器接收哪些请求。通常,每个控制器有多个路由,不同的路由可以执行不同的操作。等下和其他功能一起在 Module 中引入。控制器的目的是接收应用的特定请求。路由机制控制哪个控制器接收哪些请求。通常,每个控制器有多个路由,不同的路由可以执行不同的操作。模块是具有 @Module() 装饰器的类。 @Module() 装饰器提供了元数据,Nest 用它来组织应用程序结构。我们把以上内容引入到我们的 User 模块中以上我们的基础布局完成,可以进行接口检验了处理这些配置我们还在 main.ts 文件中配置了全局路由 app.setGlobalPrefix('api'); 意思就是所有请求前面会有一个 /api/这里我们用的 PostManMongoDB Compass 官方推荐的可视化工具查看效果这里我使用 POST 请求,路由为/api/user/createUser 因为要限制请求参数的数据类型所以这里方式为 application/json因为这里我们之前定义的 User 数据模型为 name,age,height, 所以请求里面只需要这几个参数即可,别的就算写进去也添加不到集合中Postman打开 MongoDB Compass 查看数据可以看到我们已经添加到数据库中一条数据,接下来我们在添加两条,方便等会的查询/删除/更改操作这里我使用 GET 请求,,路由为/api/user/findAll 因为这里是查 User 集合内所有数据,所以不用添加请求参数Postman
打开 MongoDB Compass 查看数据可以看到我们已经查询到数据库中刚才在 User 集合中添加的三条数据切记要点 REFRESH 建不然软件不会自己刷新这里我使用 GET 请求,路由为/api/user/findOne 因为这里是查 User 集合内对应搜索条件的数据集合,这里我们用的是name 去查询的。也可以用唯一值 id 去查询。Postman可以看到返回结果是一个集合,了解更多查询方式可以看下官网这里我使用 PUT 请求,路由为/api/user/:sid 因为要限制请求参数的数据类型所以这里方式为 application/json因为这里我们之前定义的 User 数据模型为 age,height, 所以请求里面只需要这几个参数即可,别的就算写进去也添加不到集合中,我们这里传入数据库中小明的_id 61eea1b4144ea374a5b8455a 传入 Param 中 ,然后把要修改的内容放入 Body 中Postman
打开 MongoDB Compass 查看数据可以看到我们已经把小明的年龄与身高做了修改这里我使用免费云主机、域名 DELETE 请求,路由为/api/user/:sid 因为要限制请求参数的数据类型所以这里方式为 application/json我们这里传入数据库中小明的_id 61eea1b4144ea374a5b8455a 传入 Param 中 ,并发起请求Postman打开 MongoDB Compass 查看数据可以看到小明的信息已经不存在了至此我们已经完成在 Nest.js 中使用 Mongoose 对 MongoDB 数据的基础操作。并完成了在 Nest 中使用装饰器来创建 数据模型 Schema 。看文档好像还可以使用 Nest 中内置的TypeORM 来创建模型感兴趣的小伙伴可以去看一下。回头我学习其他数据库连接时在去翻阅看看怎么操作下。Nest 要学的还有很多,管道,中间件,拦截器,路由守卫等,这些我是准备在写小 demo 中去使用来加深个人理解,不然只是单纯的看文档,难以理解,这里就先不赘述了~ 目前我知道的就是用管道做请求类型判断是很香的hhh感兴趣的小伙伴可以去了解下类验证器关于node中如何使用Nest.js连接MongoDB数据库问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注云技术行业资讯频道了解更多相关知识。

相关推荐: 怎么使用CSS保证金水平中心一个Div财产

这篇文章主要介绍“怎么使用CSS保证金水平中心一个Div财产”,在日常操作中,相信很多人在怎么使用CSS保证金水平中心一个Div财产问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用CSS保证金水平中心一个Div财产”的疑惑…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册