Nodejs学习笔记(四)——支持Mongodb
前言:回顾前面零零碎碎写的三篇挂着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的更多相关文章
- nodejs学习笔记二——链接mongodb
a.安装mongoose库用来链接mongodb数据库 安装mongodb数据库参考mongodb安装 前言(怨言) 本来是想安装mongodb库来链接mongodb的,命令行到nodejs工程目录: ...
- MongoDB学习笔记(四) 用MongoDB的文档结构描述数据关系
MongoDB的集合(collection)可以看做关系型数据库的表,文档对象(document)可以看做关系型数据库的一条记录.但两者并不完全对等.表的结构是固定的,MongoDB集合并没有这个约束 ...
- nodejs学习笔记<四>处理请求参数
在web开发中处理请求参数是个非常常见的工作:nodejs提供了了querystring用来处理请求参数. querystring常用方法有:parse,stringify. (1)parse: 解析 ...
- NodeJS学习笔记四
Generator简介 基本概念 Generator函数有多种理解角度.从语法上,首先可以把它理解成,Generator函数是一个状态机,封装了多个内部状态. 执行Generator函数会返回一个遍历 ...
- nodejs学习笔记四(模块化、在npm上发布自己的模块)
模块化: 1.系统模块: http.querystring.url 2.自定义模块 3.包管理器 [系统模块] Assert 断言:肯定确定会出现的情 ...
- nodejs学习笔记四——express-session
博友沉沉-_-的这篇express 框架之session分析的已经非常详细了,本人这里就不描述了. 总结其中的几个关键点. 1.http协议规定http链接是无状态的链接,cookie和session ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识
目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...
- Nodejs学习笔记(十六)--- Pomelo介绍&入门
目录 前言&介绍 安装Pomelo 创建项目并启动 创建项目 项目结构说明 启动 测试连接 聊天服务器 新建gate和chat服务器 配置master.json 配置servers.json ...
随机推荐
- printf(""); 输出小题目
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h> int main(){ int i=43; printf("%d\n&q ...
- label正确显示多行数据
label显示多行文字时会遇到文字中包含换行符“\n”,这时需要对字符进行全部替换, if(labelContent.indexOf('\\n')>0){labelContent=labelCo ...
- WCF Failed to invoke the service. Possible causes: The service is offline or inaccessible
今天写WCf 时遇到如下报错: 调试过程发现,各个过程都无异常,但是返回给调用端数据时出现如下错误. Failed to invoke the service. Possible causes: Th ...
- 从KRE到XRE:ASP.NET 5中正在消失的那些K
前几天写了篇博客ASP.NET 5中的那些K,刚把ASP.NET 5中的那些K搞明白了些,昨天发现微软正在让那些K消失. 首先是在 KRuntime 的git日志中发现的: * Runtime ren ...
- Blend 2015 教程 (四)控件模板
前一篇讲述了修改ListBox样式的方法,本篇将修改性别显示区域的样式. 1. 选择ListBox控件,编辑ItemTemplate的当前项,选择CheckBox控件,在美工板导航栏中点击CheckB ...
- C# 获取当前日期在指定日期范围内是第几周
public static int GetWeekOfDay(DateTime start, DateTime end) { //总周数 )); //用于存储日期 var weekDic = new ...
- js模版引擎handlebars.js实用教程——关于HTML编码
返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...
- 目前在做的一个web应用程序的前端选型
最近进入了一个新的项目组,要新起一个项目.这个Web项目是一个企业内部使用的系统,主要用来记录.追踪.管理潜在客户的数据.该系统有以下特点: 需要支持IE10及以上版本: 后端采用micro serv ...
- Azure China (8) 使用Azure PowerShell创建虚拟机,并设置固定Virtual IP Address和Private IP
<Windows Azure Platform 系列文章目录> 本文介绍的是由世纪互联运维的Windows Azure China. 相比于Global Azure (http://www ...
- UWP 统一平台开发介绍
什么是UWP? 很多程序员都有一个梦想:希望自己开发的软件能够轻而易举的在所有平台上运行,而不是把同样的需求,用不同的技术.工具重新开发才能够运行在所有平台上.这就是跨平台,很多软件从业者都在为这个梦 ...