快速上手Nodejs mongoose

建了一个公众号,以大家相互交流、读书为主,涉及的知识包括美食、法律、交际等等,很适合什么都想了解一些的人~微信公众号搜索“精粹微阅读”~


1.mongoose和mongodb nodejs

mongoose和mongodb nodejs都是Node.js中可以用于操作MongoDB的模块,在之前的文章(http://blog.csdn.net/fareise/article/details/53128723)曾经进行过介绍。mongoose可以喝mongodb nodejs一样,通过Node.js操作MongoDB数据库,但是二者有很大区别。Mongodb nodejs可以说只是对MongoDB操作的一些封装,而mongoose添加了诸如Schema等的机制,用来让Node操作MongoDB变得更加标准,让Node.js来控制MongoDB中数据的规范性。


2.使用mongoose

(1)安装:npm install mongoose --save-dev

(2)Schemas和Models

使用mongoose,需要为每种类型的数据定义Schema和Model。Schema定义了一个数据实体中应该存在每个属性的数据类型。MongoDB本身是没有对存入数据类型限定的机制的,而mongoose的Schema中的这种机制,形成了类似于Mysql中定义数据时的类型限定,保证了在MongoDB中存入的数据的规范性。下面我们定义了一个User的Schema,存放在文件schemas/UserSchema.js下:

var UserSchema  = mongoose.Schema({
	username: String,
	password: String, 
	email: String,
	lastAccess: {type:Date,default: Date.now},
	visits: {type: Number, default:0},
	admin: {type: Boolean, default: false},
});
接下来,我们要使用Schema去实例化一个model。在后面定义具体数据实体时,我们就是使用model进行定义的。在models/user.js下创建user的model:

var mongoose = require('mongoose')
var UserSchema = require('../Schema/UserSchema.js')
var User = mongoose.model('User', UserSchema)

module.exports = User
这样,我们就生成了User的Model,在之后的使用中,直接导入User的Model即可。


3.使用Model创建实例

当一个新用户注册时,我们希望将注册成功的信息存入MongoDB数据库中,这时就可以使用之前创建的User Model来完成这个工作。下面是一个例子:

var user = new User({
   username: 'test',
   password: 'xxxxxx',
   email: 'test@gmail.com'
})

使用new关键字创建一个新的实例,其中User是我们通过var User = require('../models/user')来进行引入的user model模块。在实例化中,在对象中传入Schema中定义的参数即可,注意传入的数据的数据类型要与Schema中定义的相同,这就是mongoose最大的一个优势的体现。


4.数据库操作

(1)连接数据库

数据库的连接代码如下:

mongoose.connect('mongodb://localhost/user')
这之后,mongoose会一直开启和MongoDB的连接,直到调用相关函数关闭连接。
(2)操作数据

定义好了用户实例的数据,接下来就是将数据存储MongoDB中了。在mongoose中,可以使用save方法存储一个数据的实例,代码如下:

user.save(function(err, user){
   if (err) {
      console.error(err);
      return;
   }else{
      console.log(user);
      res.send({code: 1});
   }
})
调用我们刚才定义好的user的save方法,就可以将数据存放到数据库中。mongoose为每个Schema都定义了一些默认方法,save就是其中之一。user是User Schema的实例之一,因此也可以调用save方法,将自身存储于数据库中。

类似的,mongoose中还有update(更新数据)、find(查找数据)等方法,这些都可以在官方文档中了解它们的使用方法。


下面是一段服务器端注册处理的完整代码,供大家参考:

registerUser: function(req, res){
	var md5 = crypto.createHash('md5');
	var username = req.body.username;       //获取用户注册的用户名、密码和电子邮箱
	var password = req.body.password;
        var email = req.body.email;
	md5.update(password);	                //对密码进行md5加密
	var passwordHashed = md5.digest('hex');		
        User.find({username: username}, function(err, user){     //看用户名之前是否存在,不存在则进行注册
      		if (user.length == 0) {
         		var user = new User({         //实例化
            		username: username,
            		password: passwordHashed,
            		email: email
        	 })
         	user.save(function(err, user){   //存储数据
            		if (err) {
              			console.error(err);
              			return;
            		}else{
               			console.log(user);
              			res.send({code: 1});
            		}
        	 })	
      		}else{
        	 	res.send({code: 2});
      		}
   	})
}

快速上手 Node.js,你可以按照以下步骤进行: 1. 安装 Node.js:首先,你需要在你的计算机上安装 Node.js。你可以到 Node.js 的官方网站(https://nodejs.org/)下载适合你操作系统的安装包,并按照安装向导进行安装。 2. 学习基础语法:一旦 Node.js 安装完成,你可以开始学习 Node.js 的基础语法。了解如何定义变量、使用控制流语句(如条件语句和循环)、函数的使用等。 3. 掌握模块系统:Node.js 使用模块系统来组织和重用代码。学习如何使用 `require` 函数导入模块,以及如何创建和导出自己的模块。 4. 学习核心模块:Node.js 提供了许多核心模块,可以帮助你处理文件系统、网络通信、HTTP 请求等常见任务。学习如何使用这些核心模块来完成具体的操作。 5. 使用 NPM:NPM(Node Package Manager)是 Node.js 的包管理工具,可以帮助你安装、管理和分享代码包。学习如何使用 NPM 来安装第三方模块,并了解如何创建自己的包。 6. 探索框架和工具:Node.js 生态系统中有许多优秀的框架和工具,可以帮助你更快地开发应用程序。探索一些流行的框架(如 Express、Koa)和工具(如 Babel、Webpack),并了解如何使用它们。 7. 实践项目:最重要的是通过实践项目来深入学习和理解 Node.js。选择一些小型的练手项目,如创建一个简单的 Web 服务器、编写一个命令行工具等,以应用你所学的知识。 记住,上手 Node.js 需要时间和实践,不要急于求成。保持学习的态度,阅读文档、参考示例代码,并与社区互动,你会逐渐掌握 Node.js 的开发技能。祝你学习愉快!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值