Mongoose使用案例.docx

上传人:b****5 文档编号:7361748 上传时间:2023-05-11 格式:DOCX 页数:10 大小:17.70KB
下载 相关 举报
Mongoose使用案例.docx_第1页
第1页 / 共10页
Mongoose使用案例.docx_第2页
第2页 / 共10页
Mongoose使用案例.docx_第3页
第3页 / 共10页
Mongoose使用案例.docx_第4页
第4页 / 共10页
Mongoose使用案例.docx_第5页
第5页 / 共10页
Mongoose使用案例.docx_第6页
第6页 / 共10页
Mongoose使用案例.docx_第7页
第7页 / 共10页
Mongoose使用案例.docx_第8页
第8页 / 共10页
Mongoose使用案例.docx_第9页
第9页 / 共10页
Mongoose使用案例.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Mongoose使用案例.docx

《Mongoose使用案例.docx》由会员分享,可在线阅读,更多相关《Mongoose使用案例.docx(10页珍藏版)》请在冰点文库上搜索。

Mongoose使用案例.docx

Mongoose使用案例

Mongoose使用案例–让JSON数据直接入库MongoDB

从零开始nodejs系列文章

从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发。

Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎。

chrome浏览器就基于V8,同时打开20-30个网页都很流畅。

Nodejs标准的web开发框架Express,可以帮助我们迅速建立web站点,比起PHP的开发效率更高,而且学习曲线更低。

非常适合小型网站,个性化网站,我们自己的Geek网站!

文章目录

配置Mongoose

创建目录及文件

插入数据,POST提交JSON增加一条记录

查询数据,取出刚增加的记录

1.配置Mongoose

增加mongoose的类库

 

cdd:

/workspace/project/nodejs-demo

npminstallmongoose

D:

\workspace\project\nodejs-demo\node_modules\mongoose\node_modules\mongodb\node_modu

C:

\ProgramFiles(x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.InvalidPlatform.Targe

e_modules\mongodb\node_modules\bson\build\bson.vcxproj]

mongoose@3.6.10node_modules\mongoose

├──muri@0.3.1

├──hooks@0.2.1

├──sliced@0.0.3

├──mpath@0.1.1

├──ms@0.1.0

├──mpromise@0.2.1(sliced@0.0.4)

└──mongodb@1.3.3(kerberos@0.0.2,bson@0.1.8)

安装时,有64位兼容性错误提示没关系,Mongoose类库安装完成。

增加models目录

mkdirmodels

在models目录,增加mongodb.js文件

varmongoose=require('mongoose');

mongoose.connect('mongodb:

//localhost/nodejs');

exports.mongoose=mongoose;

指定Mongo的数据库名为nodejs

2.创建目录及文件

在models目录,增加数据模型Movie.js

 

varmongodb=require('./mongodb');

varSchema=mongodb.mongoose.Schema;

varMovieSchema=newSchema({

name:

String,

alias:

[String],

publish:

Date,

create_date:

{type:

Date,default:

Date.now},

images:

{

coverSmall:

String,

coverBig:

String,

},

source:

[{

source:

String,

link:

String,

swfLink:

String,

quality:

String,

version:

String,

lang:

String,

subtitle:

String,

create_date:

{type:

Date,default:

Date.now}

}]

});

varMovie=mongodb.mongoose.model("Movie",MovieSchema);

varMovieDAO=function(){};

module.exports=newMovieDAO();

指定Mongo的数据库集为Movie

数据类型,包括了String,Date,Array,Mixed]

打开app.js增加访问路径

 

varexpress=require('express')

routes=require('./routes')

user=require('./routes/user')

movie=require('./routes/movie')

http=require('http')

path=require('path')

ejs=require('ejs')

SessionStore=require("session-mongoose")(express);

...

app.get('/movie/add',movie.movieAdd);//增加

app.post('/movie/add',movie.doMovieAdd);//提交

app.get('/movie/:

name',movie.movieAdd);//编辑查询

app.get('/movie/json/:

name',movie.movieJSON);//JSON数据

在routes目录,增加movie.js

 

varMovie=require('./../models/Movie.js');

exports.movieAdd=function(req,res){

if(req.params.name){//update

returnres.render('movie',{

title:

req.params.name+'|电影|管理|moive.me',

label:

'编辑电影:

'+req.params.name,

movie:

req.params.name

});

}else{

returnres.render('movie',{

title:

'新增加|电影|管理|moive.me',

label:

'新增加电影',

movie:

false

});

}

};

exports.doMovieAdd=function(req,res){

res.send({'success':

true});

};

在views目录,增加movie.html

 

<%includeheader.html%>

<%=label%>

保存

<%includefooter.html%>

网页效果:

http:

//localhost:

3000/movie/add

3.插入数据,POST提交JSON增加一条记录

基础环境,都搭建好后,我们开台准备向mongodb中插入数据。

首先创建一个json数据文件,这样我们可以方便点,直接读入这个文件,创建JSON数据对象了。

在public/javascripts/目录,增加movie.json文件

 

{

"name":

"未来警察",

"alias":

["FutureX-Cops","Meiloigingchaat"],

"publish":

"2010-04-29",

"images":

{

"coverBig":

"/img/movie/1_big.jpg",

"coverSmall":

"/img/movie/1_small.jpg"

},

"source":

[{

"source":

"优酷",

"link":

"",

"swfLink":

"

"quality":

"高清",

"version":

"正片",

"lang":

"汉语",

"subtitle":

"中文字幕"

},{

"source":

"搜狐",

"link":

"",

"swfLink":

"

"quality":

"高清",

"version":

"正片",

"lang":

"汉语",

"subtitle":

"中文字幕"

}]

}

在public/javascripts/目录,增加jquery.json-2.4.js类库

 

在public/javascripts/目录,增加movie.js文件,作为前端脚本

 

$(function(){

varmdata={};

varurl='/javascripts/movie.json';

$.getJSON(url,function(data){

mdata=data;

render_editor_form(mdata);

render_event_form(mdata);

});

varrender_editor_form=function(data){

$('#c_editor').val($.toJSON(data));

};

varrender_event_form=function(){

$('#c_save').on('click',function(event){

vardata={};

data['content']=mdata;

$.ajax({

type:

"POST",

url:

'/movie/add',

data:

data,

success:

function(data,textStatus){

if(data.success){

$('#msg').html('成功保存!

');

$('#msg').addClass('alertalert-success');

$(location).attr('href','/movie/'+mdata.name);

}else{

$('#msg').html(data.err);

$('#msg').addClass('alertalert-error');

}

}

});

});

};

});

修改views/footer.html,增加movie.js文件引用,同时增加jquery.json包

 

网页效果:

http:

//localhost:

3000/movie/add

在models/Movie.js,增加save方法

 

MovieDAO.prototype.save=function(obj,callback){

varinstance=newMovie(obj);

instance.save(function(err){

callback(err);

});

};

在routes/movie.js,调用save方法

 

exports.doMovieAdd=function(req,res){

console.log(req.body.content);

varjson=req.body.content;

if(json._id){//update

}else{//insert

Movie.save(json,function(err){

if(err){

res.send({'success':

false,'err':

err});

}else{

res.send({'success':

true});

}

});

}

};

控制台日志

 

Expressserverlisteningonport3000

{name:

'未来警察',

alias:

['FutureX-Cops','Meiloigingchaat'],

publish:

'2010-04-29',

images:

{coverBig:

'/img/movie/1_big.jpg',

coverSmall:

'/img/movie/1_small.jpg'},

source:

[{source:

'优酷',

link:

'',

swfLink:

'

quality:

'高清',

version:

'正片',

lang:

'汉语',

subtitle:

'中文字幕'},

{source:

'搜狐',

link:

'',

swfLink:

'

quality:

'高清',

version:

'正片',

lang:

'汉语',

subtitle:

'中文字幕'}]}

POST/movie/add20057ms-21b

4.查询数据,取出刚增加的记录

models/Movie.js,增加findByName方法

 

MovieDAO.prototype.findByName=function(name,callback){

Movie.findOne({name:

name},function(err,obj){

callback(err,obj);

});

};

routes/movies.js,增加movieJSON

 

exports.movieJSON=function(req,res){

Movie.findByName(req.params.name,function(err,obj){

res.send(obj);

});

}

前端javascripts/movie.js,从/movie/json/xxx处取数据

 

varmdata={};

varurl='/javascripts/movie.json';

varmovie=$('#c_editor').attr('movie')

if(movie){

url='/movie/json/'+movie;

}

修改views/movie.html

'"movie='+movie+'"':

'')%>>

数据从/movie/json/未来警察,处读取。

完成尝试。

修改操作与插入的操作类似,我就不做演示了。

希望此文对大家有所帮助。

以上程序代码,我已经上传到github有需要的同学,自行下载。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2