nodejs操作mongodb数据库(转载)
2017-08-14 23:34
609 查看
转自:http://blog.csdn.net/susuzhe123/article/details/61203609
第一步:安装node环境,配置全局变量。
第二步:安装MongoDB,也有一些可视化工具,喜欢命令行操作的也可以不用,我没用也就不介绍了。
第三步:新建一个目录存放数据 随便放在哪个盘 (md 文件名),也可以右键新建,我的是d:data
第四步:开启mongodb,cmd切盘到mongodb的安装目录bin下,C:\Program Files\MongoDB\Server\3.4\bin这是我的目录,然后mongod
-dbpath d:data,地址栏输入http://127.0.0.1:27017/,这个端口是默认的,也可以修改,成功后在页面上会看到
第五步:学习一些mongodb的基本命令,会创建查找就可以了,cmd切盘到mongodb的安装目录bin下,命令行输入mongo,在这里面可以对数据库进行操作,也可以执行一些计算
第六步:创建一个数据库use myData,db,然后db.myData.find(),查看我们创建的数据库,什么都没有,可以先插入一个数据,db.myData.insert({"username":"susu"}),查看所有的数据库:show dbs
到这里对于数据库了解这些就可以了,重点是我们如何用nodejs去操作数据库,然后响应前端的一些操作,也就是提供接口。之前有写过如何通过node开启一个本地服务器,现在用到了,这里用到了querystring,上代码:
server.js:
[javascript] view
plain copy
//1.新启一个服务器
var http=require('http');
var url=require('url');
//querystring将指定的字符串转换为json对象
//qs.parse();
var qs=require('querystring');
//创建服务
var getUser=require('./db.js')[0];
var addUser=require('./db.js')[1];
var deleted=require('./db.js')[2];
var change=require('./db.js')[3];
http.createServer(function(request,response){
response.writeHead('200',{'Content-Type':'application/json;charset=utf-8','Access-Control-Allow-Origin':'*'});
//引入url模块
var _url = request.url;
var _path = url.parse(_url).pathname;
switch(_path){
case "/register":
var _data="";
//获取post提交的数据
//监听data,有数据,回调函数就会出现值
request.addListener('data',function(data){
_data+=data;//目前每次拿到的data都是单个字符
//得到完整字符串
});
//数据接收完毕
request.addListener('end',function(){
var ops=qs.parse(_data);
var userops = {"userName":ops.userName};
var message={}; //定义返给前端的信息
getUser(userops,function(res){
//userops是前端传过来的参数(根据这个参数来数据库中查找)
if(res.length!==0){ //查询到了这个用户名(不能再注册)
message.code="00000";
message.status = "用户名已存在";
}else{
//查询不到,可以注册
message.status = "注册成功";
message.code="10000";
//增加进数据库(这个地方逻辑有点错误,还没想到比较好的解决办法,一般不会影响)
addUser(ops,function(ress){
if(ress.length!==0){
console.log("成功")
}else{
console.log("失败")
}
})
}
response.write(JSON.stringify(message));
response.end();
})
});
break;
case "/login":
var _data="";
//获取post提交的数据
//监听data,有数据,回调函数就会出现值
request.addListener('data',function(data){
_data+=data;//目前每次拿到的data都是单个字符
//得到完整字符串
});
//数据接收完毕
request.addListener('end',function(){
var ops=qs.parse(_data);
var message={}; //定义返给前端的信息
getUser(ops,function(res){
//ops是前端传过来的参数(如果不传,返回出数据库中所有数据)
if(res.length!==0){
//通过getUser这个自定义函数去自动查找数据库中的数据
//只要用用户名和密码都正确res的长度才不为零,他是一个数组
message.code="10000";
message.status = "登陆成功";
}else{
message.code="00000";
message.status = "登陆失败";
}
response.write(JSON.stringify(message));
response.end();
})
});
break;
case "/deleted":
var _data="";
//获取post提交的数据
//监听data,有数据,回调函数就会出现值
request.addListener('data',function(data){
_data+=data;//目前每次拿到的data都是单个字符
//得到完整字符串
});
//数据接收完毕
request.addListener('end',function(){
var ops=qs.parse(_data);
var message={}; //定义返给前端的信息
deleted(ops,function(res){
console.log(res)
response.write(JSON.stringify(message));
response.end();
})
});
break;
case "/change":
var _data="";
//获取post提交的数据
//监听data,有数据,回调函数就会出现值
request.addListener('data',function(data){
_data+=data;//目前每次拿到的data都是单个字符
//得到完整字符串
});
//数据接收完毕
request.addListener('end',function(){
var ops=qs.parse(_data);
var userOld = {"userName":ops.userName};
var usernew = {$set:{"userName":ops.passWord}};
var userops = {"userName":ops.passWord};
console.log(userops)
var message={}; //定义返给前端的信息
getUser(userops,function(res){
//userops是前端传过来的参数(根据这个参数来数据库中查找)
if(res.length!==0){ //查询到了这个用户名(不能再注册)
message.code="00000";
message.status = "用户名已存在";
}else{
//查询不到,可以注册
message.status = "修改成功";
message.code="10000";
//增加进数据库(这个地方逻辑有点错误,还没想到比较好的解决办法,一般不会影响)
change(userOld,usernew,function(ress){
if(ress.length!==0){
console.log("成功")
}else{
console.log("失败")
}
})
}
response.write(JSON.stringify(message));
response.end();
})
});
break;
}
}).listen(3080); //监听的端口
然后method.js:
//查询用户是否存在(登录)
var getUser=function(options,callback){
//引入支持node访问mongodb插件
var mongodb=require('mongodb');
//获取与数据库服务器的连接
var server=new mongodb.Server('127.0.0.1',27017,{auto_connection:true});
//通过连接获取数据库实例
//mongodb.Db('数据库名称',获取与数据库连接对象,安全策略)
var appdb=new mongodb.Db('myData',server,{safe:true});
//open 是否发生错误,实例
appdb.open(function(err,appdb){
if(!err){
//进行下一步操作 打开存储数据的集合
//collection 数据库名称 安全策略 回调函数
appdb.collection('dbdata',{safe:true},function(err,collection){
if(!err){
//查找
collection.find(options).toArray(function(err,doc){
console.log(doc+"db1")
if(!err){
console.log(doc+"db2")
callback(doc);
}
});
}
})
}
})
}
//增加用户(注册)
var addUser = function(options,callback){
//引入支持node访问mongodb插件
var mongodb=require('mongodb');
//获取与数据库服务器的连接
var server=new mongodb.Server('127.0.0.1',27017,{auto_connection:true});
//通过连接获取数据库实例
//mongodb.Db('数据库名称',获取与数据库连接对象,安全策略)
var appdb=new mongodb.Db('myData',server,{safe:true});
//open 是否发生错误,实例
appdb.open(function(err,appdb){
if(!err){
//进行下一步操作 打开存储数据的集合
//collection 数据库名称 安全策略 回调函数
appdb.collection('dbdata',{safe:true},function(err,collection){
if(!err){
//增加
collection.insert(options,function(error, result){
if(error)
{
console.log('Error:'+ error);
}else{
callback(result)
}
});
}
//在collection里面获取数据,然后放到callback
})
}
})
}
//删除用户(注销)
var removeUser=function(options,callback){
//引入支持node访问mongodb插件
var mongodb=require('mongodb');
//获取与数据库服务器的连接
var server=new mongodb.Server('127.0.0.1',27017,{auto_connection:true});
//通过连接获取数据库实例
//mongodb.Db('数据库名称',获取与数据库连接对象,安全策略)
var appdb=new mongodb.Db('myData',server,{safe:true});
//open 是否发生错误,实例
appdb.open(function(err,appdb){
if(!err){
//进行下一步操作 打开存储数据的集合
//collection 数据库名称 安全策略 回调函数
appdb.collection('dbdata',{safe:true},function(err,collection){
if(!err){
//删除
collection.remove(options,function(error, result){
if(error)
{
console.log('Error:'+ error);
}else{
callback(result)
}
});
}
//在collection里面获取数据,然后放到callback
})
}
})
}
//修改用户(换密码)
var updateUser=function(options,updata,callback){
//引入支持node访问mongodb插件
var mongodb=require('mongodb');
//获取与数据库服务器的连接
var server=new mongodb.Server('127.0.0.1',27017,{auto_connection:true});
//通过连接获取数据库实例
//mongodb.Db('数据库名称',获取与数据库连接对象,安全策略)
var appdb=new mongodb.Db('myData',server,{safe:true});
//open 是否发生错误,实例
appdb.open(function(err,appdb){
if(!err){
//进行下一步操作 打开存储数据的集合
//collection 数据库名称 安全策略 回调函数
appdb.collection('dbdata',{safe:true},function(err,collection){
if(!err){
//修改
collection.update(options,updata,function(error, result){
if(error)
{
console.log('Error:'+ error);
}else{
console.log(result.result.n);
}
});
}
//在collection里面获取数据,然后放到callback
})
}
})
}
module.exports=[getUser,addUser,removeUser,updateUser]; //暴露出去,在server.js中调用
这个文件里面主要是一些对数据库进行操作的方法,实现了基本的增删改查,server.js里面主要是写的一些接口。cmd切盘到本项目目录下,然后node server.js开启服务器就可以了。
html:
[html] view
plain copy
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>mongodb</title>
<script type="text/javascript" src="jquery-2.1.0.js" ></script>
</head>
<style>
*{margin:0;padding: 0;}
body{background: #222;}
</style>
<body>
<!--登录-->
<div style="width:400px;padding:15px 0;text-align:center;color:#DDDDDD;height:280px;border: 3px solid #fff;border-radius:8px;margin: 0 auto;margin-top: 220px;">
名称:<input style="height:28px;margin:15px 0;" type = "text" class="userName" value = ""/></br>
密码:<input style="height:28px;margin:15px 0;" type = "password" class = "passWord" value = ""/></br>
<input type = "submit" style="height:28px;margin:15px 0;width:100px;background: bisque;" class="submit" value = "注册"/>
</div>
</body>
</html>
<script>
$(".submit").on("click",function(){
var userName = $(".userName").val();
var passWord = $(".passWord").val();
var data = {};
data.userName = userName;
data.passWord = passWord;
(var url = "http://127.0.0.1:3080/register"
var url = "http://127.0.0.1:3080/login"
var url = "http://127.0.0.1:3080/deleted"
var url = "http://127.0.0.1:3080/change")
//上面这是四个接口,每次调用一个就可以了
$.post(url,data,function(data){
console.log(data)
})
});
</script>
第一步:安装node环境,配置全局变量。
第二步:安装MongoDB,也有一些可视化工具,喜欢命令行操作的也可以不用,我没用也就不介绍了。
第三步:新建一个目录存放数据 随便放在哪个盘 (md 文件名),也可以右键新建,我的是d:data
第四步:开启mongodb,cmd切盘到mongodb的安装目录bin下,C:\Program Files\MongoDB\Server\3.4\bin这是我的目录,然后mongod
-dbpath d:data,地址栏输入http://127.0.0.1:27017/,这个端口是默认的,也可以修改,成功后在页面上会看到
It looks like you are trying to access MongoDB over HTTP on the native driver port.
第五步:学习一些mongodb的基本命令,会创建查找就可以了,cmd切盘到mongodb的安装目录bin下,命令行输入mongo,在这里面可以对数据库进行操作,也可以执行一些计算
第六步:创建一个数据库use myData,db,然后db.myData.find(),查看我们创建的数据库,什么都没有,可以先插入一个数据,db.myData.insert({"username":"susu"}),查看所有的数据库:show dbs
到这里对于数据库了解这些就可以了,重点是我们如何用nodejs去操作数据库,然后响应前端的一些操作,也就是提供接口。之前有写过如何通过node开启一个本地服务器,现在用到了,这里用到了querystring,上代码:
server.js:
[javascript] view
plain copy
//1.新启一个服务器
var http=require('http');
var url=require('url');
//querystring将指定的字符串转换为json对象
//qs.parse();
var qs=require('querystring');
//创建服务
var getUser=require('./db.js')[0];
var addUser=require('./db.js')[1];
var deleted=require('./db.js')[2];
var change=require('./db.js')[3];
http.createServer(function(request,response){
response.writeHead('200',{'Content-Type':'application/json;charset=utf-8','Access-Control-Allow-Origin':'*'});
//引入url模块
var _url = request.url;
var _path = url.parse(_url).pathname;
switch(_path){
case "/register":
var _data="";
//获取post提交的数据
//监听data,有数据,回调函数就会出现值
request.addListener('data',function(data){
_data+=data;//目前每次拿到的data都是单个字符
//得到完整字符串
});
//数据接收完毕
request.addListener('end',function(){
var ops=qs.parse(_data);
var userops = {"userName":ops.userName};
var message={}; //定义返给前端的信息
getUser(userops,function(res){
//userops是前端传过来的参数(根据这个参数来数据库中查找)
if(res.length!==0){ //查询到了这个用户名(不能再注册)
message.code="00000";
message.status = "用户名已存在";
}else{
//查询不到,可以注册
message.status = "注册成功";
message.code="10000";
//增加进数据库(这个地方逻辑有点错误,还没想到比较好的解决办法,一般不会影响)
addUser(ops,function(ress){
if(ress.length!==0){
console.log("成功")
}else{
console.log("失败")
}
})
}
response.write(JSON.stringify(message));
response.end();
})
});
break;
case "/login":
var _data="";
//获取post提交的数据
//监听data,有数据,回调函数就会出现值
request.addListener('data',function(data){
_data+=data;//目前每次拿到的data都是单个字符
//得到完整字符串
});
//数据接收完毕
request.addListener('end',function(){
var ops=qs.parse(_data);
var message={}; //定义返给前端的信息
getUser(ops,function(res){
//ops是前端传过来的参数(如果不传,返回出数据库中所有数据)
if(res.length!==0){
//通过getUser这个自定义函数去自动查找数据库中的数据
//只要用用户名和密码都正确res的长度才不为零,他是一个数组
message.code="10000";
message.status = "登陆成功";
}else{
message.code="00000";
message.status = "登陆失败";
}
response.write(JSON.stringify(message));
response.end();
})
});
break;
case "/deleted":
var _data="";
//获取post提交的数据
//监听data,有数据,回调函数就会出现值
request.addListener('data',function(data){
_data+=data;//目前每次拿到的data都是单个字符
//得到完整字符串
});
//数据接收完毕
request.addListener('end',function(){
var ops=qs.parse(_data);
var message={}; //定义返给前端的信息
deleted(ops,function(res){
console.log(res)
response.write(JSON.stringify(message));
response.end();
})
});
break;
case "/change":
var _data="";
//获取post提交的数据
//监听data,有数据,回调函数就会出现值
request.addListener('data',function(data){
_data+=data;//目前每次拿到的data都是单个字符
//得到完整字符串
});
//数据接收完毕
request.addListener('end',function(){
var ops=qs.parse(_data);
var userOld = {"userName":ops.userName};
var usernew = {$set:{"userName":ops.passWord}};
var userops = {"userName":ops.passWord};
console.log(userops)
var message={}; //定义返给前端的信息
getUser(userops,function(res){
//userops是前端传过来的参数(根据这个参数来数据库中查找)
if(res.length!==0){ //查询到了这个用户名(不能再注册)
message.code="00000";
message.status = "用户名已存在";
}else{
//查询不到,可以注册
message.status = "修改成功";
message.code="10000";
//增加进数据库(这个地方逻辑有点错误,还没想到比较好的解决办法,一般不会影响)
change(userOld,usernew,function(ress){
if(ress.length!==0){
console.log("成功")
}else{
console.log("失败")
}
})
}
response.write(JSON.stringify(message));
response.end();
})
});
break;
}
}).listen(3080); //监听的端口
然后method.js:
//查询用户是否存在(登录)
var getUser=function(options,callback){
//引入支持node访问mongodb插件
var mongodb=require('mongodb');
//获取与数据库服务器的连接
var server=new mongodb.Server('127.0.0.1',27017,{auto_connection:true});
//通过连接获取数据库实例
//mongodb.Db('数据库名称',获取与数据库连接对象,安全策略)
var appdb=new mongodb.Db('myData',server,{safe:true});
//open 是否发生错误,实例
appdb.open(function(err,appdb){
if(!err){
//进行下一步操作 打开存储数据的集合
//collection 数据库名称 安全策略 回调函数
appdb.collection('dbdata',{safe:true},function(err,collection){
if(!err){
//查找
collection.find(options).toArray(function(err,doc){
console.log(doc+"db1")
if(!err){
console.log(doc+"db2")
callback(doc);
}
});
}
})
}
})
}
//增加用户(注册)
var addUser = function(options,callback){
//引入支持node访问mongodb插件
var mongodb=require('mongodb');
//获取与数据库服务器的连接
var server=new mongodb.Server('127.0.0.1',27017,{auto_connection:true});
//通过连接获取数据库实例
//mongodb.Db('数据库名称',获取与数据库连接对象,安全策略)
var appdb=new mongodb.Db('myData',server,{safe:true});
//open 是否发生错误,实例
appdb.open(function(err,appdb){
if(!err){
//进行下一步操作 打开存储数据的集合
//collection 数据库名称 安全策略 回调函数
appdb.collection('dbdata',{safe:true},function(err,collection){
if(!err){
//增加
collection.insert(options,function(error, result){
if(error)
{
console.log('Error:'+ error);
}else{
callback(result)
}
});
}
//在collection里面获取数据,然后放到callback
})
}
})
}
//删除用户(注销)
var removeUser=function(options,callback){
//引入支持node访问mongodb插件
var mongodb=require('mongodb');
//获取与数据库服务器的连接
var server=new mongodb.Server('127.0.0.1',27017,{auto_connection:true});
//通过连接获取数据库实例
//mongodb.Db('数据库名称',获取与数据库连接对象,安全策略)
var appdb=new mongodb.Db('myData',server,{safe:true});
//open 是否发生错误,实例
appdb.open(function(err,appdb){
if(!err){
//进行下一步操作 打开存储数据的集合
//collection 数据库名称 安全策略 回调函数
appdb.collection('dbdata',{safe:true},function(err,collection){
if(!err){
//删除
collection.remove(options,function(error, result){
if(error)
{
console.log('Error:'+ error);
}else{
callback(result)
}
});
}
//在collection里面获取数据,然后放到callback
})
}
})
}
//修改用户(换密码)
var updateUser=function(options,updata,callback){
//引入支持node访问mongodb插件
var mongodb=require('mongodb');
//获取与数据库服务器的连接
var server=new mongodb.Server('127.0.0.1',27017,{auto_connection:true});
//通过连接获取数据库实例
//mongodb.Db('数据库名称',获取与数据库连接对象,安全策略)
var appdb=new mongodb.Db('myData',server,{safe:true});
//open 是否发生错误,实例
appdb.open(function(err,appdb){
if(!err){
//进行下一步操作 打开存储数据的集合
//collection 数据库名称 安全策略 回调函数
appdb.collection('dbdata',{safe:true},function(err,collection){
if(!err){
//修改
collection.update(options,updata,function(error, result){
if(error)
{
console.log('Error:'+ error);
}else{
console.log(result.result.n);
}
});
}
//在collection里面获取数据,然后放到callback
})
}
})
}
module.exports=[getUser,addUser,removeUser,updateUser]; //暴露出去,在server.js中调用
这个文件里面主要是一些对数据库进行操作的方法,实现了基本的增删改查,server.js里面主要是写的一些接口。cmd切盘到本项目目录下,然后node server.js开启服务器就可以了。
html:
[html] view
plain copy
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>mongodb</title>
<script type="text/javascript" src="jquery-2.1.0.js" ></script>
</head>
<style>
*{margin:0;padding: 0;}
body{background: #222;}
</style>
<body>
<!--登录-->
<div style="width:400px;padding:15px 0;text-align:center;color:#DDDDDD;height:280px;border: 3px solid #fff;border-radius:8px;margin: 0 auto;margin-top: 220px;">
名称:<input style="height:28px;margin:15px 0;" type = "text" class="userName" value = ""/></br>
密码:<input style="height:28px;margin:15px 0;" type = "password" class = "passWord" value = ""/></br>
<input type = "submit" style="height:28px;margin:15px 0;width:100px;background: bisque;" class="submit" value = "注册"/>
</div>
</body>
</html>
<script>
$(".submit").on("click",function(){
var userName = $(".userName").val();
var passWord = $(".passWord").val();
var data = {};
data.userName = userName;
data.passWord = passWord;
(var url = "http://127.0.0.1:3080/register"
var url = "http://127.0.0.1:3080/login"
var url = "http://127.0.0.1:3080/deleted"
var url = "http://127.0.0.1:3080/change")
//上面这是四个接口,每次调用一个就可以了
$.post(url,data,function(data){
console.log(data)
})
});
</script>
相关文章推荐
- [转载] Mongoose - 让NodeJS更容易操作Mongodb数据库
- nodejs对mongodb数据库的增删改查操作(转载)
- nodejs对mongodb数据库的增删改查操作(转载)
- nodejs操作mongodb数据库(mongodb)
- Mongoose - 让NodeJS更容易操作Mongodb数据库
- Nodejs操作MongoDB数据库示例
- Nodejs学习笔记(二)--- 操作MongoDB数据库
- nodejs操作mongodb数据库
- nodejs操作oracle实例--转载
- nodejs操作mongodb数据库
- nodejs操作mongodb数据库(mongoose)
- nodejs操作mongodb数据库(mongodb)
- nodejs操作mongodb数据库
- nodejs对mongodb数据库的增删改查操作
- 让NodeJS更容易操作Mongodb数据库
- Nodejs操作MongoDB数据库示例
- nodejs操作mongodb数据库(mongodb)
- 详解nodejs操作mongodb数据库封装DB类
- 在NodeJS中操作文件常见的API
- C++ 的各种文件读写操作总结 [转载]