从零开始优雅的使用mongodb实例

Posted tinyphp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始优雅的使用mongodb实例相关的知识,希望对你有一定的参考价值。

基本连接

一、创建express工程testmon

express testmon

 

二、精简app.js

var express = require("express");
var app = express();
app.get(\'/\', function(req, res) { 
    res.send(\'访问一次增加一条数据\'); 
});


var server = app.listen(3000,function(){
    console.log("请在浏览器访问:http://localhost:3000");
});

 

三:进入工程目录安装mongoose并引入依赖:

npm install --save mongoose

四、修改app.js

var express = require("express");
var app = express();
app.get(\'/\', function(req, res) { 
res.send(\'Hello, tinyphp\'); 
});
var server = app.listen(3000,function(){
    console.log("请在浏览器访问:http://localhost:3000");
});


//引入mongoose模块
var mongoose = require(\'mongoose\');
//创建数据库连接
var db=mongoose.connect(\'mongodb://localhost:27017/test\');

//检查是否连接成功
db.connection.on("error",function(error){
    console.log("数据库连接失败:"+error);
});

db.connection.on("open",function(error){
    console.log("++++++数据库连成功++++++");
});


/*****Schema使用*****/

//定义kitty属性
var kittySchema = mongoose.Schema({
    name: String  
});
//将该Schema发布为Model,第一个参数为集合名
var kittyModel = mongoose.model(\'kitty\', kittySchema);

//用module创建kitty实体
var kittyEntity = new kittyModel({ name: \'tinyphp99\' });

//保存数据
kittyEntity.save(function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log(\'成功插入数据\');
  }
});
/************/

打开另外一个cmd窗口,先查询一次数据,然后重新启动工程,再查询一次数据发现数据成功添加上了

 

分离改造

下面我们把它改装为一访问http://localhost:3000/add就自动添加数据,思路

 

 

config.js 数据库配置信息

module.exports={
    mongodb:"mongodb://localhost:27017/test"
}

 

mongoose.js 数据库连接文件

//引入mongoose模块
var mongoose = require(\'mongoose\');
var config=require(\'./config.js\');

module.exports=function(){
    //创建数据库连接
var db=mongoose.connect(config.mongodb);
//检查是否连接成功
db.connection.on("error",function(error){
    console.log("数据库连接失败:"+error);
});

db.connection.on("open",function(error){
    console.log("++++++数据库连成功++++++");
});
require(\'../models/kitty.model.js\');
return db;
}

 

kitty.model.js 导出Model用于生成实体

var mongoose =require(\'mongoose\');
/*****Schema使用*****/

//定义kitty属性
var kittySchema = mongoose.Schema({
    name: String  
});

mongoose.model(\'kitty\',kittySchema);

 

app.js

var express = require("express");

var mongoose = require(\'./config/mongoose.js\'); 
var db=mongoose();

var app = express();


var add=require(\'./routes/add\');
app.use(\'/add\',add);


var server = app.listen(3000,function(){
    console.log("请在浏览器访问:http://localhost:3000");
});

add.js 控制访问一次http://localhost:3000/add插入一次数据

var express = require(\'express\');
var router = express.Router();

var mongoose =require(\'mongoose\');
//将该Schema发布为Model,第一个参数为集合名
var kittyModel=mongoose.model(\'kitty\');

/* GET home page. */
router.get(\'/\', function(req, res, next) {
  res.send(\'又添加一条数据\');

//用module创建kitty实体
var kittyEntity = new kittyModel({ name: \'tom\' });

//保存数据
kittyEntity.save(function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log(\'成功插入数据\');
  }
});

});



module.exports = router;

 

路由里因为用到kittyModel所以引入要在mongoose初始化后,不然会提示出错“Schema hasn\'t been registered ...”, 自己把上面的顺序调换测试下更深刻噢~

温馨提示:测试多了,不妨使用db.table.drop() 把整个集合删除掉噢

相关文章:

安装express并创建工程

window平台安装MongoDB

 

下载地址

以上是关于从零开始优雅的使用mongodb实例的主要内容,如果未能解决你的问题,请参考以下文章

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段

mq从零开始实现 mq-05-实现优雅停机

从零开始的AI·朴素贝叶斯?拿来吧你(附实例代码)

从零开始的AI·决策树原来这么好理解(附实例代码)

从零开始的AI·吃透kNN算法,学完我悟了(附实例代码)