前言:回顾前面零零碎碎写的三篇挂着Nodejs学习笔记的文章,着实有点名不副实,当然,这篇可能还是要继续走着离主线越走越远的路子,从简短的介绍什么是Nodejs,到如何寻找一个可以调试的Nodejs IDE再到未爬先走的搭建一个小小的nodejs application,一直都是贯彻“学习笔记”的精神,想到哪写到哪,遇到什么问题就去解决并记录。如果你不幸读到本笔记,还请记住这是一系列形散神不散的学习笔记!!!

  好了,每次不扯几句感觉没法开场似的。本篇形散于要穿插如何利用github管理自己的代码,而神不散于要继续上篇的《Nodejs学习笔记(三)——一张图看懂Nodejs建站》讲述下不通过伪造数据而是真实的把玩mongodb一番,实现真真正正的有前后台有数据库的application。

  上篇使用Nodejs搭建了一个网站应用,我也已经将这些代码传到我的github(https://github.com/DMinerJackie)上了,有兴趣的可以下载或者在线查看,但是作为一个像样的完整的网站应用,不能没有数据库的支持。所以,这里跟着Scott老师继续学习了如果使用mongodb这个nosql存储数据并实现增删改查的。相比上篇这里主要要提到的有以下几点:

1.有关mongodb

  1.1 Mongodb数据库的安装和使用

  关于mongodb的下载安装配置,这里《windows下MongoDB的安装及配置》写的很清楚。

  补充下如果要当成一种服务直接使用的话,可以按照如下操作:

  进入到你存放安装mongodb的目录下的bin文件夹,执行命令mongod.exe --install --logpath=E:\software\mongodb\mongo.log --dbpath=E:\software\mongodb\data\db

  logpath是存放日志的位置,dbpath是存放数据的数据库的位置

  总之,你执行完这个命令后,在运行命令行中输入services.msc后,就可以看到MongoDB这个服务项了,后面你就可以通过

    net start mongodb 启动mongodb服务

    net stop mongodb 停止mongodb服务

  通过指令注册mongodb服务

  安装好mongodb服务后使用命令启动和停止mongodb

  进入mongo命令模式,可以进行对数据库的增删改查等操作

  注意:当出现以下情况

  表示mongodb服务还没有启动,可以通过上面的命令启动mongodb,就可以进入mongo模式。

  1.2 在代码中编写有关Mongodb的模式Schema和模型Model

  Shema是一个文档的数据结构,可以定义各种类型如String、Number、Date等类型的字段,有个数据结构的定义,后面的数据就有了一一对应的存放的位置。

  Model是对应于前面定义Schema的编译版本,一个model的实例直接映射数据库中的一个文档,从而实现CRUD(Create、Read、Update、Delete)操作。

  具体的定义参见代码中models/movie.js和shemas/movies.js。

  1.3 在入口文件app.js中改写数据获取方式

  具体参见app.js,通过新加入的路由“/admin/movie/new”,实现向网站中添加数据,也就是将数据插入到mongodb的表中。之后我们可以在主页以及list和detail页面看到加入的这条记录

  注意:代码中的update和delete模块的代码还有问题,目前尚未调通,但是不影响对于mongodb的数据库的插入数据

  录入数据并提交

  跳转到详情页

  通过可以看到主页以及列表页也多了这条记录

  通过mongo模式,我们可以看到这条记录确实已经存入数据库imooc中了

2.有关github

  工作中发现github着实是个好东西,所以为了避免本地不断的修改有没有修改记录的囧境,所以决定将这个小小应用的代码上传到github上。

  那么问题来了——没弄过。

  没关系,那就现在开始弄吧,鼠标点一点,资料看不完。 下面这篇《手把手教你最简单的开源项目托管GitHub入门教程》讲的很好了。

  前人讲的这么好,我就不啰嗦了,补充两点自己遇到的问题。

  2.1 在git commit的时候报错:fatal: unable to auto-detect email address (got 'Administrator@20150409-153944.

  解决方法:表明自己的身份:git config --global user.email {emailaddress}

  2.2 git push的时候提示unknown ssl的错误

  解决方法:被qiang了。

  2.3 至此,可以看到我的两个小应用已经传到我的github主页了

  欢迎前去指教代码^_^

  如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!如果您想持续关注我的文章,请扫描二维码,关注JackieZheng的微信公众号,我会将我的文章推送给您,并和您一起分享我日常阅读过的优质文章。

  

友情赞助

如果你觉得博主的文章对你那么一点小帮助,恰巧你又有想打赏博主的小冲动,那么事不宜迟,赶紧扫一扫,小额地赞助下,攒个奶粉钱,也是让博主有动力继续努力,写出更好的文章^^。

    1. 支付宝                          2. 微信

                      

Nodejs学习笔记(四)——支持Mongodb的更多相关文章

  1. nodejs学习笔记二——链接mongodb

    a.安装mongoose库用来链接mongodb数据库 安装mongodb数据库参考mongodb安装 前言(怨言) 本来是想安装mongodb库来链接mongodb的,命令行到nodejs工程目录: ...

  2. MongoDB学习笔记(四) 用MongoDB的文档结构描述数据关系

    MongoDB的集合(collection)可以看做关系型数据库的表,文档对象(document)可以看做关系型数据库的一条记录.但两者并不完全对等.表的结构是固定的,MongoDB集合并没有这个约束 ...

  3. nodejs学习笔记<四>处理请求参数

    在web开发中处理请求参数是个非常常见的工作:nodejs提供了了querystring用来处理请求参数. querystring常用方法有:parse,stringify. (1)parse: 解析 ...

  4. NodeJS学习笔记四

    Generator简介 基本概念 Generator函数有多种理解角度.从语法上,首先可以把它理解成,Generator函数是一个状态机,封装了多个内部状态. 执行Generator函数会返回一个遍历 ...

  5. nodejs学习笔记四(模块化、在npm上发布自己的模块)

    模块化:      1.系统模块:  http.querystring.url      2.自定义模块      3.包管理器   [系统模块]   Assert      断言:肯定确定会出现的情 ...

  6. nodejs学习笔记四——express-session

    博友沉沉-_-的这篇express 框架之session分析的已经非常详细了,本人这里就不描述了. 总结其中的几个关键点. 1.http协议规定http链接是无状态的链接,cookie和session ...

  7. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  8. Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识

    目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...

  9. Nodejs学习笔记(十六)--- Pomelo介绍&入门

    目录 前言&介绍 安装Pomelo 创建项目并启动 创建项目 项目结构说明 启动 测试连接 聊天服务器 新建gate和chat服务器 配置master.json 配置servers.json ...

随机推荐

  1. (转)使用Node.js+Socket.IO搭建WebSocket实时应用

    Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. W ...

  2. 第一次自己写jquery图片延迟加载插件,不通用,但修改一下还是可以使用到很多页面上的

    不断修改完善中…… /*! * jquery.lazyoading.js *自定义的页面图片延迟加载插件,比网上的jquery.lazyload简单,也更适合自己的网站 *使用方法: 把img 的cl ...

  3. linux-用命令形式聊天的常用命令

    当我们在Linux的终端下使用命令“who”或“w”时,我们总会看到一长串的用户列表,此时,你是不是很想发送一个消息给他/她.如果她是一个你心仪很久的MM,而你正好看到她也在,迫于害羞的你,是不是此时 ...

  4. 不用asp.net MVC,用WebForm照样可以实现MVC(请看最后一句话)

    在<避开WebForm天坑,拥抱ASP.Net MVC吧>这篇博客中我讲到了ASP.net WebForm由于一些先天的“诱导犯罪”的缺陷,现在用ASP.net MVC的公司越来越多.但是 ...

  5. 使用FiddlerCore来测试WebAPI

    大家在调试Web相关的API时,经常会用Fiddler来查看相关的请求,以及返回结果.当然你也可以尝试修改或者重复你的请求信息.本文主要介绍如何使用代码来实现fiddler的功能. Fiddler C ...

  6. 程序员DNS知识指南

    本次内容比较hardcore,非科班出身可能会有理解障碍,可以考虑不用挣扎,直接放弃.毕竟普通驾驶员是不需要理解内燃机原理和曲轴如何做功的,所谓术业有专攻也,能看完的不是同行就是真爱~ 引 DNS对于 ...

  7. IOS Animation-CAKeyframeAnimation例子(简单动画实现)

    在阅读本文之前,可以看看 CABasicAnimation的例子 也可以看看IOS Animation-CABasicAnimation.CAKeyframeAnimation详解&区别&am ...

  8. 我心中的核心组件(可插拔的AOP)~第五回 消息组件

    回到目录 之所以把发消息拿出来,完全是因为微软的orchard项目,在这个项目里,将公用的与领域无关的功能模块进行抽象,形成了一个个的组件,这些组件通过引用和注入的方式进行工作,感觉对于应用程序的扩展 ...

  9. Atitit.软件与编程语言中的锁机制原理attilax总结

    Atitit.软件与编程语言中的锁机制原理attilax总结 1. 用途 (Db,业务数据加锁,并发操作加锁.1 2. 锁得类型 排它锁 "互斥锁 共享锁 乐观锁与悲观锁1 2.1. 自旋锁 ...

  10. win2008 强制删除故障集群配置

    在正常删除Cluster 节点之后,再添加节点时,报“节点已经加入群集”,无法加入,注册表信息删除后可正常移除Cluster服务,如下: win2008故障转移群集无法退出节点时 删除注册表中这两个后 ...