node-ejs-mongodb结合的项目案例-----引用mongoose和未引用mongoose模块
本项目个人尝试了2种方法,一个是直接用mongod,一个是引用mongod里的mongoose。
nodejs-ejs-mogondb-
nodej+ejs模板,通过mogondb数据查询数据实现简单的登陆验证。
搭建mogondb:
一、首先安装mongodb
1.下载地址:http://www.mongodb.org/downloads
2.解压缩到自己想要安装的目录,比如d:\mongodb
3.创建文件夹d:\mongodb\data\db、d:\mongodb\data\log,分别用来安装db和日志文件,在log文件夹下创建一个日志文件MongoDB.log,即d:\mongodb\data\log\MongoDB.log
4.运行cmd.exe进入dos命令界面,执行下列命令 > cd d:\mongodb\bin > d:\mongodb\bin>mongod -dbpath "d:\mongodb\data\db" 看到类似的信息,则说明启动成功,默认MongoDB监听的端口是27017,mysql的是3306
5.测试连接 新开一个cmd窗口,进入mongodb的bin目录,输入mongo或者mongo.exe,出现如下信息说明测试通过,此时我们已经进入了test这个数据库,如何进入其他数据库下面会说。 输入exit或者ctrl+C可退出。
6.当mongod.exe被关闭时,mongo.exe 就无法连接到数据库了,因此每次想使用mongodb数据库都要开启mongod.exe程序,所以比较麻烦,此时我们可以将MongoDB安装为windows服务 还是运行cmd,进入bin文件夹,执行下列命令 > d:\mongodb\bin>mongod --dbpath "d:\mongodb\data\db" --logpath "d:\mongodb\data\log\MongoDB.log" --install --serviceName "MongoDB" 这里MongoDB.log就是开始建立的日志文件,--serviceName "MongoDB" 服务名为MongoDB 接着启动mongodb服务 > d:\mongodb\bin>NET START MongoDB 打开任务管理器,可以看到进程已经启动
7.关闭服务和删除进程 > d:\mongodb\bin>NET stop MongoDB (关闭服务) > d:\mongodb\bin>mongod --dbpath "d:\mongodb\data\db" --logpath "d:\mongodb\data\log\MongoDB.log" --remove --serviceName "MongoDB" (删除,注意不是--install了)
二、创建hello-world数据库 1、mongo.exe启动 2、创建数据库 use hello-world 3、插入数据(登陆时的账号密码)db.users.insert({"userid" : "admin", "password" :"123456"})
这样子就ok了;
三:安装node依赖包
npm install
四:启动node项目 node app.js 显示 端口:3000启动成功
附件:使用mongodb基础知识
1.常用的命令
show dbs 显示数据库列表 use dbname 进入dbname数据库,大小写敏感,没有这个数据库也不要紧 show collections 显示数据库中的集合,相当于表格
2.创建&新增
db.users.save({"name":"lecaf"}) 创建了名为users的集合,并新增了一条{"name":"lecaf"}的数据 db.users.insert({"name":"ghost", "age":10}) 在users集合中插入一条新数据,,如果没有users这个集合,mongodb会自动创建 save()和insert()也存在着些许区别:若新增的数据主键已经存在,insert()会不做操作并提示错误,而save() 则更改原来的内容为新内容。 存在数据:{ _id : 1, " name " : " n1 "} ,_id是主键 insert({ _id : 1, " name " : " n2 " }) 会提示错误 save({ _id : 1, " name " : " n2 " }) 会把 n1 改为 n2 ,有update的作用。
3.删除
db.users.remove() 删除users集合下所有数据 db.users.remove({"name": "lecaf"}) 删除users集合下name=lecaf的数据 db.users.drop()或db.runCommand({"drop","users"}) 删除集合users db.runCommand({"dropDatabase": 1}) 删除当前数据库
4.查找
db.users.find() 查找users集合中所有数据 db.users.findOne() 查找users集合中的第一条数据
5.修改
db.users.update({"name":"lecaf"}, {"age":10}) 修改name=lecaf的数据为age=10,第一个参数是查找条件,第二个参数是修改内容,除了主键,其他内容会被第二个参数的内容替换,主键不能修改
第一种(引用mongoose):
github链接:https://github.com/chenpeng2/node-mongoose。


第二种(未引用mongoose):
github链接:https://github.com/chenpeng2/node-ejs-nomongoose。


作者:喜悦的小鹏哥
node-ejs-mongodb结合的项目案例-----引用mongoose和未引用mongoose模块的更多相关文章
- node.js + mongodb 做项目的详解(一)
想写博客很长时间了,因为一直身患懒癌,所以一直拖到了现在.markdown的语法也是刚刚学,试验一下效果好了不说了,直接上干货了.----------------------------------- ...
- 8 步搭建 Node.js + MongoDB 项目的自动化持续集成
任何事情超过 90 秒就应该自动化,这是程序员的终极打开方式.Automating shapes smarter future. 这篇文章中,我们通过创建一个 Node.js + MongoDB 项目 ...
- node+express+mongodb初体验
从去年11月份到现在,一直想去学习nodejs,在这段时间体验了gulp.grunt.yeomen,fis,但是对于nodejs深入的去学习,去开发项目总是断断续续. 今天花了一天的时间,去了解整理整 ...
- Node操作MongoDB并与express结合实现图书管理系统
Node操作MongoDB数据库 原文链接:http://www.xingxin.me/ Web应用离不开数据库的操作,我们将陆续了解Node操作MongoDB与MySQL这是两个具有代表性的数据库, ...
- 《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想
总体介绍 <Node.js+MongoDB+AngularJS Web开发>,于2015年6月出版,是一本翻译过来的书,原书名为<Node.js,MongoDB and Angula ...
- Node.JS + MongoDB技术浅谈
看到一个Node.JS + MongoDB的小样例,分享给大家.魔乐科技软件学院(www.mldnjava.cn)的讲座 Node.JS + MongoDB技术讲座 云计算 +大数据 ...
- 【招聘App】—— React/Nodejs/MongoDB全栈项目:登录注册
前言:最近在学习Redux+react+Router+Nodejs全栈开发高级课程,这里对实践过程作个记录,方便自己和大家翻阅.最终成果github地址:https://github.com/66We ...
- 使用node+express+mongodb实现用户注册、登录和验证功能
无论是手机端还是pc端,几乎都包含登录注册方面功能,今天就使用node+express+mongodb实现一套登录注册功能,这里需要自己去安装MongoDB环境,如果没有安装可以看这篇关于MongoD ...
- vue-cli脚手架——2.0版本项目案例
一.[准备工作] Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/. Git 各平台安装包下载地址为:http://git-scm.com/dow ...
随机推荐
- 在LaTeX 与 LyX 中设置“Contents”为“目录”
在 LaTeX 中,目录一般被显示为英文"Contents",因此需要设置成"目录". 通常在 Preamble 按照如下方式设置: \renewcommand ...
- HTML5学习笔记<三>: HTML5样式, 连接和表格
HTML样式 1, 标签: <style>: 样式定义 <link>: 资源引用 2. 属性: rel="stylesheet": 外部样式表 type=& ...
- freemodbus移植讲解 ZZ
一 为什么要移植Freemodbus 为什么要移植Freemodbus,这个问题需要从两个方面来回答.第一,modbus是一个非常好的应用层协议,它很简洁也相对完善.对于还没有接触过modbus的 ...
- VC++中解决“在查找预编译头使用时跳过”的方法
Visual C++ Concepts: Building a C/C++ ProgramCompiler Warning (level 1) C4627Error Message": sk ...
- 读书笔记 effective c++ Item 34 区分接口继承和实现继承
看上去最为简单的(public)继承的概念由两个单独部分组成:函数接口的继承和函数模板继承.这两种继承之间的区别同本书介绍部分讨论的函数声明和函数定义之间的区别完全对应. 1. 类函数的三种实现 作为 ...
- ICC_lab总结——ICC_lab3:布局
PS:字丑,禁止转载. 做到了ICC workshop的第三个实验,理论与实践相结合,于是,先放一张总结图,这张总结图来自前面的博客,放在这里用来体现理论和实践的联系: 这个就是布局的理论部分,在IC ...
- RAC OCR盘故障导致的集群重启恢复
一.事故说明 最近出现了一次OCR盘的故障导致Oracle集群件宕机的事故,后以独占模式启动集群,并使用ocr备份恢复了OCR文件以及重新设置了vote disk,然后关闭集群,重启成功. 因此在此处 ...
- python复习。知识点小记
1.对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符: >>> ord('A') >>> ord('中' ...
- MVC学习笔记3 - JsRender
许多发展平台减少代码和简化维护,使用模板和 HTML5 和 JavaScript 也不例外. JsRender 是一个 JavaScript 库使您可以一次定义一个样板文件结构,并使用它来动态地生成 ...
- Alamofire源码解读系列(九)之响应封装(Response)
本篇主要带来Alamofire中Response的解读 前言 在每篇文章的前言部分,我都会把我认为的本篇最重要的内容提前讲一下.我更想同大家分享这些顶级框架在设计和编码层次究竟有哪些过人的地方?当然, ...