Mongoose使用案例Word格式.docx
- 文档编号:8413433
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:10
- 大小:17.70KB
Mongoose使用案例Word格式.docx
《Mongoose使用案例Word格式.docx》由会员分享,可在线阅读,更多相关《Mongoose使用案例Word格式.docx(10页珍藏版)》请在冰点文库上搜索。
安装时,有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:
},
source:
[{
source:
link:
swfLink:
quality:
version:
lang:
subtitle:
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.doMovieAdd);
//提交
/movie/:
name'
//编辑查询
/movie/json/:
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{
{
新增加|电影|管理|moive.me'
新增加电影'
false
}
};
exports.doMovieAdd=function(req,res){
res.send({'
success'
:
true});
在views目录,增加movie.html
<
%includeheader.html%>
divclass="
container-fluid"
>
row-fluid"
span8"
form>
fieldset>
legend>
%=label%>
/legend>
textareaid="
c_editor"
name="
class="
span12"
rows="
10"
/textarea>
buttonid="
c_save"
type="
button"
btnbtn-primary"
保存<
/button>
/fieldset>
/div>
%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"
优酷"
link"
swfLink"
quality"
高清"
version"
正片"
lang"
汉语"
subtitle"
中文字幕"
},{
搜狐"
在public/javascripts/目录,增加jquery.json-2.4.js类库
scriptsrc="
/javascripts/jquery-1.9.1.min.js"
/script>
/javascripts/bootstrap.min.js"
/javascripts/jquery.json-2.4.js"
/javascripts/movie.js"
/body>
/html>
在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:
'
data:
data,
success:
function(data,textStatus){
if(data.success){
#msg'
).html('
成功保存!
).addClass('
alertalert-success'
$(location).attr('
href'
'
/movie/'
+mdata.name);
).html(data.err);
alertalert-error'
修改views/footer.html,增加movie.js文件引用,同时增加jquery.json包
在models/Movie.js,增加save方法
MovieDAO.prototype.save=function(obj,callback){
varinstance=newMovie(obj);
instance.save(function(err){
callback(err);
在routes/movie.js,调用save方法
console.log(req.body.content);
varjson=req.body.content;
if(json._id){//update
}else{//insert
Movie.save(json,function(err){
if(err){
false,'
err'
err});
控制台日志
Expressserverlisteningonport3000
{name:
未来警察'
alias:
['
FutureX-Cops'
'
Meiloigingchaat'
],
publish:
2010-04-29'
images:
{coverBig:
/img/movie/1_big.jpg'
/img/movie/1_small.jpg'
},
[{source:
优酷'
高清'
正片'
汉语'
中文字幕'
{source:
搜狐'
}]}
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处取数据
varmovie=$('
).attr('
if(movie){
url='
/movie/json/'
+movie;
修改views/movie.html
<
%=(movie?
movie='
+movie+'
)%>
数据从/movie/json/未来警察,处读取。
完成尝试。
修改操作与插入的操作类似,我就不做演示了。
希望此文对大家有所帮助。
以上程序代码,我已经上传到github有需要的同学,自行下载。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mongoose 使用 案例
![提示](https://static.bingdoc.com/images/bang_tan.gif)