当前位置: 首页 > 后端技术 > Node.js

手把手教你开发nodejs微博网站-连接数据库

时间:2023-04-03 15:56:17 Node.js

欢迎访问这里查看更多大数据平台建设原创文章。介绍博客必须以用户为中心,包括用户注册、用户登录、用户发帖、留言评论等,自然离不开数据库。MongoDBMongoDB简介MongoDB是一个开源的NoSql数据库。与mysql等关系型数据库相比,更轻量、更灵活。非常适合在数据规模较大,事务性不强的情况下使用MongoDB将数据存储为文档。数据结构由键值对(key=>value)组成。字段值可以包含其他文档、数组和文档数组。与MySQL需要将对象属性转化为SQL语句保存相比,MongoDB可以直接将JS对象保存为数据库文档。我们来看一个MongoDB文档的例子:{"_id":ObjectId("4f7fe8432b4a1077a7c551e8"),name:'phping',age:28,hobby:['movies','music','nba']}可以看到数据格式是json,所以对javascript的兼容很强,我们的项目也是用的MongoDB。MongoD概念解析mongodb中的基本概念是文档、集合、数据库。下表将帮助您更容易地理解Mongo中的一些概念:SQL术语/概念MongoDB术语/概念解释/说明MongoDB不支持主键primarykey。MongoDB自动将_id字段设置为主键。通过下图的例子,我们也可以更好的理解Mongo中的一些概念:MongoDB的安装自己的系统可以参考下面的链接指南。安装步骤非常详细。这里我就不细说了。Windows用户指南:https://docs.mongodb.com/manu...Linux用户指南:https://docs.mongodb.com/manu...Mac用户指南:https://docs.mongodb.com/manu...Robomongo我用的MongoDB可视化管理工具是Robomongo,当然还有其他的可以用,比如:MongoChef等。RobomongoRobomongo是一款基于shell的跨平台开源MongoDB管理工具。嵌入式JavaScript引擎和MongoDBmogo。只要知道mongoshell,就会使用Robomongo。提供语法高亮显示、自动完成、差异视图等。点此下载并创建连接下载安装成功后,点击左上角的创建创建连接,给连接起一个名字如:localhost,使用默认地址(localhost)和端口(27017),并点击Save保存,如下图:添加数据前面简单介绍了mongodb中的一些概念,下面我们使用图形化管理工具Robomongo来添加数据:点击Insertdocument:会打开一个空白面板,我们手动编写待添加数据:写入一个简单的测试数据如下:左下角的按钮可以用来验证我们写入的数据格式。数据格式无误后,点击右下角的保存按钮。查看新增文档:此时可以在右侧区域看到新增数据:使用Mongolass连接数据库OK,MongoDB安装成功,下面我们使用Mongolass连接数据库。安装Mongolass$npminstallmongoose连接MongoDB首先,我们需要定义一个连接。如果你的应用程序只使用一个数据库,你应该使用mongoose.connect;如果您需要创建额外的连接,请使用mongoose.createConnection。两种连接方式都需要mongodb://URI,或者主机名、数据库名、端口号、配置项等。varmongoose=require('猫鼬');mongoose.connect('mongodb://localhost/my_database');定义一个模型varmongoose=require('mongoose');mongoose.connect('mongodb://localhost/my_database');varCat=mongoose.model('Cat',{name:String});访问一个模型varmongoose=require('mongoose');mongoose.connect('mongodb://localhost/my_database');varCat=mongoose.model('Cat',{name:String});varkitty=newCat({name:'Zildjian'});kitty.save(函数(err){if(err){console.log(err);}else{console.log('meow');}});更多用法请参考官网文档。总结本文主要讲解我在开发这个项目时使用的是什么数据库以及如何连接数据库,下一节干货来了:用户注册功能开发,敬请期待!项目代码可以在github上下载:https://github.com/liuyongfei...欢迎大家关注微信公众号阅读更多文章欢迎访问更多关于webpack系列原创文章:基本概念webpack系列和webpack系列的loader的使用和webpack系列的plugin的简单使用和webpack项目的简单使用如何正确打包导入的自定义字体