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

news/2024/4/29 19:57:43/文章来源:https://blog.csdn.net/weixin_34290352/article/details/89079847

连接数据库

引子

博客肯定是以用户为中心,包括用户的注册,用户的登录,用户发表留言,对留言进行评价等等功能,所以,自然离不开数据库。

MongoDB

MongoDB简介
  1. MongoDB是一个开源的NoSql数据库,相比mysql那样的关系型数据库,它更为轻巧,灵活,非常适合在数据规模很大,事务性不强的场合下使用

  2. MongoDB将数据存储为一个文档,数据结构由键值对(key=>value)组成。字段值可以包含其他文档,数组及文档数组

  3. 相对于mysql这类需要把对象属性转换成SQL语句才能保存下来 ,MongoDB这些可以直接保存JS对象成数据库的文档,来看一个MongoDB文档的示例:

    {"_id" : ObjectId( "4f7fe8432b4a1077a7c551e8" ),name : 'phping',age : 28,hobby : ['movies','music','nba']}

可以看到数据格式为json,因此与javascript的亲和性很强,我们的项目也是使用MongoDB。

MongoD概念解析

mongodb中基本的概念是文档、集合、数据库。下表将帮助您更容易理解Mongo中的一些概念:

SQL术语/概念MongoDB术语/概念解释/说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据库记录集合/文档
columnfield数据字段/域
indexindex索引
table joins 表连接,mongodb不支持
primary keyprimary key主键,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等。

  • Robomongo
    Robomongo 是一个基于 Shell 的跨平台开源 MongoDB 管理工具。嵌入了 JavaScript 引擎和 MongoDB mogo 。只要你会使用 mongo shell ,你就会使用 Robomongo。提供语法高亮、自动完成、差别视图等。

点击这里下载

  • 创建连接
    下载并安装成功后点击左上角的 Create 来创建一个连接,给该连接起个名字如: localhost,使用默认地址(localhost)和端口(27017)即可,点击 Save 保存,如下图:

图片描述

  • 添加数据
    前面已经简单的介绍了mongodb中的一些概念,让我们使用Robomongo这个图形化管理工具来添加数据:

  • 点插入文档:
    图片描述

  • 会打开一个空白面板,让我们手动写入要添加的数据:
    图片描述

  • 写一个简单的测试数据如下:
    图片描述

其中左下角的按钮可以用来验证我们写入的数据格式,数据格式无误后点击右下角的保存按钮即可。

  • 查看新增加的文档:
    图片描述

  • 这时,在你右边区域就可以看到我们刚才新增加的数据了:
    图片描述

使用Mongolass连接数据库

好了,MongoDB安装成功了,我们来使用Mongolass连接数据库。

安装Mongolass
$ npm install mongoose
连接MongoDB

首先,我们需要定义一个连接。如果您的应用程序只使用一个数据库,您应该使用mongoose.connect
如果您需要创建额外的连接,使用mongoose.createConnection

这两种方式连接都需要mongodb:// URI,或者主机名字,数据库名字,端口号,配置项等。

var mongoose = require('mongoose');mongoose.connect('mongodb://localhost/my_database');
定义一个模型
var mongoose = require('mongoose');mongoose.connect('mongodb://localhost/my_database');var Cat = mongoose.model('Cat', { name: String });
访问一个模型
var mongoose = require('mongoose');mongoose.connect('mongodb://localhost/my_database');var Cat = mongoose.model('Cat', { name: String });var kitty = new Cat({ name: 'Zildjian' });
kitty.save(function (err) {if (err) {console.log(err);} else {console.log('meow');}
});

更多使用可以查看官网文档.

总结

本篇主要讲解了我在开发本项目时使用的什么数据库,怎么连接数据库,下节干货就来了:用户注册功能开发,敬请期待!
工程代码可从github上下载:https://github.com/phping1/no...

想查看更多文章,请点击我的博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_777346.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

花生鼠的日常建站日志-------使用在线网易云音乐api

在自己的服务器上安装api服务器运行起来,然后通过api获取网易云音乐的资源。 步骤: 首先下载网易云音乐的api服务器源码 github地址:https://github.com/Binaryify/NeteaseCloudMusicApi zip文件直链下载:https://codeload.githu…

Centos7安装http2.4 配置个人网站 和 虚拟主机设置

安装 Centos7.6 rpm安装过程中需要的依赖包有,挂载镜像Centos7.6然后终端进入镜像的 Package目录 按照顺序安装 rpm -ivh apr-1.4.8-3.el7_4.1.x86_64.rpm rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm rpm -ivh httpd-tools-2.4.6-80.el7.centos.x86_64.rpm rpm -iv…

《淘宝店铺 大数据营销+SEO+爆款打造 一册通》一一1.2 淘宝流量来源分析

本节书摘来自异步社区出版社《淘宝店铺 大数据营销SEO爆款打造 一册通》一书中的第1章,第1.2节,作者:葛存山 , 耿寿礼,更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.2 淘宝流量来源分析 做淘宝新手卖家大家最关心的是…

Tornado 网站demo 一

web服务器的工作过程 创建 listen socket, 在指定的监听端口, 等待客户端请求的到来listen socket 接受客户端的请求, 得到 client socket, 接下来通过 client socket 与客户端通信处理客户端的请求, 首先从 client socket 读取 http 请求的协议头, 如果是 post 协议, 还可能要…

网站SEO优化、IIS日志分析工具 IISLogViewer V2.0 发布

PS:为了有个响亮些的名字,软件中文名更名为:点格网站日志分析器 本次发布IIS日志分析工具[IISLogViewer] V2.0版本。 下面单刀直入,看下 IIS日志分析工具 V2.0 版本所带来新的教程: 1:运行IISLogViewer.exe…

网站应用接入qq登录,实现免注册原理

去qq互联:https://connect.qq.com/index.html 创建一个wen网站类型的应用,如下过程,这个过程可能比较久 前提条件 1、网站域名已经备案成功并且网站可以访问,然后再来申请接入网站应用 然后需要用到备案信息,否则就会收到邮件通…

大规模网站sesson会话保持思路及实践配置

1.需求: 请教个问题:我用lvs的rr模式,(考虑过 ipvsadm -p,但是这样就失去了负载均衡的意义感觉),后端有10台web,用一台memcached专门用于存储session文件,但是现在问题是…

实现所有网站的qq登录返回登录后的cookie信息

开源地址:https://github.com/1015770492/autoLoginQQWithAnyWeb 注意:如果你下载了源码,想在自己的windows环境下测试,将源码中top.yumbo.music.test.configuration.ChromeAutoConfigration中 指定chromedriver路径的注释打开&a…

解决Fiddler Everywhere无法捕捉浏览器的请求问题,以及意外退出Fiddler Everywhere导致谷歌浏览器访问不了网站

今天又用到了Fiddler Everywhere又遇到了上次同样的问题,Fiddler Everywhere捕捉不到请求。 细想一下Fiddler Everywhere的作用,当我们打开它的时候本质上就是启动了一个代理服务器,也就是系统的所有http请求都经过Fiddler后台的服务器进行转…

监控网站服务质量出图学习后续篇

前面我们已经学习过了,如何收集网站服务质量的一些相关数据,然后通过入库出图,开始打算是用rrdtool做画图,但是经过一段时间的研究,发现echarts出图合理和美观,下面贴出我实时收集到的数据和出图展示部分: …

网页制作中点一张图片变成图片浏览式_做网站为什么要做响应式网站?

“响应式建站”又被称为HTML5建站、H5 响应式建站。响应式网站做为目前网站建设的主导方向,越来越多的网站建设者选择建设响应式网站。那么到底什么是响应式设计?什么是响应式建站?什么是响应式网站呢? 移动互联网发展迅速。随着智能手机的普及,互联网用户更喜欢…

selenium-java 实现QQ音乐自动登录获取cookie数据,爬取qq音乐会员资源和网易云音乐会员资源。实现任意网站的会员资源爬取

javaselenium-java 实现qq自动登录功能并获取cookie 下面是网易云音乐的qq自动功能演示,cookie信息在控制台中会打印出来。---->下一步就是利用这个cookie实现网站资源的爬取。 下面是qq音乐的自动登录 CSDN的自动登录 源代码如下 import org.openqa.selenium.*…

架构师---(大型网站分布式架构)

#参考资料大型分布式网站架构设计与实践 #感悟:书读百遍,其意自见 #QQ群北京it—推荐–交流:300458205 #群专注内推、大数据、云计算、Java、Android、UI等技术交流,欢迎你的加入。 看的越多,发现会的越少&#xff…

架构师---(大型网站技术架构核心原理与案例分析)1大型网站架构演化

#参考资料大型网站技术架构核心原理与案例分析(作者李智慧) #1初始阶段的网站架构 小型网站起初访问量不是很高,只需要一台服务器就可以了。通常我们的部署将应用程序、数据库、文件等所有的资源都在一台服务器上。通常服务器操作系统为linux…

从码农到架构师---设计大型网站架构模式和核心要素

参考资料大型网站技术架构核心原理与案例分析(作者李智慧) 参考资料架构修炼之道(作者王新栋) 网关 1-API网关的基本功能与七种措施 2-如何设计一个API: 常用工具(设计API和生成API文档) RAML和Swagger RAML的五个过程 Design->Build->Test->…

java spring boot + Selenium 爬取网站简单使用

chromedriver 下载 首先下载chromedriver 这个驱动 注意: 看一下Chrome 浏览器版本 选择合适对应的chromedriver 版本 pom引入 <!-- selenium-java --><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</ar…

网站 nginx http 升级 https

首先下载 nginx wget -c https://nginx.org/download/nginx-1.10.1.tar.gz然后解压 tar -zxvf nginx-1.10.1.tar.gz注意这里 如果你以前有nginx 在启动目录里使用 ./nginx -V 看看是否有 with-http_ssl_module 这个模块 如果没有请按照http升级https(转)这篇文章升级(本人也是参…

高并发高流量网站架构

Web2.0的兴起&#xff0c;掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念&#xff0c;细分了网站功能和用户群&#xff0c;不仅成功的造就了一大批新生的网站&#xff0c;也极大的方便了上网的人们。但Web2.0以用户为导向的理念&#xff0c;使得新生的网站有…

db2怎么限定查询条数_SEO优化怎么样呢?如何做seo?

SEO优化怎么样呢&#xff1f;如何做seo&#xff1f;网站上线后不是给自己看的&#xff0c;更多的情况下是给用户看的。seo优化的作用在于提升网站关键词自然排名&#xff0c;便于用户搜索&#xff0c;便于提高用户通过相关关键词看到网站的概率。通常所说的搜索引擎优化&#x…

WEB网站压力测试方案 压力测试如何换算并发用户数

http://wenku.baidu.com/view/bedf1a93daef5ef7ba0d3c29.html 压力测试通过确定一个系统的瓶颈或者不能接收的性能点&#xff0c;来获得系统能提供的最大的服务级别的测试。通俗地讲&#xff0c;压力测试是为了发现在什么条件下您的应用程序的性能会变得不可接受。 极限压力测…