前言
Nodejs基于Javascript,MongoDB脚步同样也是基于Javascript。而且他们的数据存储格式都是JSON,这就是为什么要把他们放在一起的原因了。如果程序前后端能直接处理JSON,我想数据处理过程又可以极大的减化了,代码量又将低少1/5。多么的兴奋啊!让我们来动手验证一下想法吧。
本文重点介绍网前端通过JQuery发起邮政提交JSON数据,通过猫鼬直接插入或更新到蒙古数据库。
工程目录沿用nodejs-演示,增加/猫鼬路径及对应文件。
文章目录
配置猫鼬创建目录及文件插入数据,开机自检提交JSON增加一条记录查询数据,取出刚增加的记录1.配置猫鼬
增加猫鼬的类库
CD d :/工作区/项目/节点-恶魔pm安装mongoosed : 工作区项目 nodejs-demo node _ modules mongose node _ modules MongoDB node _ moduc 3360 程序文件(x86) MSBuild Microsoft .Cpp v4.0 微软CPP。无效平台。targee _ modules MongoDB node _ modules bson build bson。vcxproj][emailprotected]node_modulesmongoose[emailprotected][emailprotected][emailprotected]][emailprotected][emailprotected][email protected]([emailprotected])[email保护]([电子邮件保护],[电子邮件保护])安装时,有64位兼容性错误提示没关系,猫鼬类库安装完成。
增加模型目录
mkdir模型
在模型目录,增加mongodb.js文件
var mongose=必选(' mongose ');蒙哥斯。connect(' MongoDB :///localhost/nodejs ');出口猫鼬=猫鼬;指定蒙戈的数据库名为nodejs
2.创建目录及文件
在模型目录,增加数据模型电影。射流研究…
var mongodb=require(' ./MongoDB ');var Schema=MongoDB。蒙哥斯。图式;var MovieSchema=新架构({ name : String,别名: [String],publish : Date,create_date : { type: Date,default: Date.now}),images : { cover mall 3360 String,coverBig:String,},source :[{ source : String,link:String,swfLink:String,quality : String var Movie=MongoDB。蒙哥斯。模型(‘电影’,电影模式);var MovieDAO=function(){ };模块。exports=new MovieDAO();指定蒙戈的数据库集为电影
数据类型,包括了字符串、日期、数组、混合]
打开app.js增加访问路径
var express=必需(' express '),routes=必需(' ./routes '),user=require ' ./routes/user '),movie=require ' ./routes/movie ')、http=require('http ')、path=require('path ')、ejs=require('ejs ')、session store=require(' session-mongose ')(express);app.get('/movie/add ',movie。电影DD);//增加app.post('/movie/add ',movie . domoviead//提交app.get('/movie/:name ',movie。电影DD);//编辑查询app.get('/movie/json/:name ',movie。moviejson);//JSON数据在路线目录,增加电影。射流研究…
var Movie=require(' ././模特/电影。js’);出口。moviedd=函数(req,RES){ if(req。参数。name){//updatereturn RES . render(' movie ',{title:req.params.name '|电影|管理|moive.me ',标签: '编辑电影:' req.params.name,电影: req。参数。name });} else {return res.render('movie ',{title: '新增加|电影|管理|moive.me ',标签: '新增加电影,电影:假});}};出口。domovieadd=function(req,RES){ RES . send({ ' success ' : true });};在视图目录,增加movie.html
% include header.html % div class=' container-fluid ' div class=' row-fluid ' div class=' span 8 ' formfield setlegend %=label %/legendtextarea id=' c _ editor ' name=' c _ editor ' class=' span 12 ' row=' 10 '/textarea button id=' c _ save ' type=' button ' class=' BTN BTN-primary '保存/button/field set form/div/div/div %包括footer.html %网页效果:http://localhost :3000/movie/add
3.插入数据,开机自检提交JSON增加一条记录
基础环境,都搭建好后,我们开台准备向mongodb中插入数据。
首先创建一个json数据文件,这样我们可以方便点,直接读入这个文件,创建JSON数据对象了。
在公共/JavaScript/目录,增加movie.json文件
{'name': '未来警察,'别名' : ['未来《X-Cops》,《梅洛金查亚特》,《出版》: '2010-04-29》,《影像》: {《封面大》: '/img/movie/1 _ big。jpg ','封面商城' : '/' img/movie/1 _ small。jpg ' },' source':[{'source': '优酷,' link':'http://www.youku.com ',' swfLink ' : ' http://player。优酷。com/player。PHP/sid/xmty4 nzm5od C2/v . swf ','质量' : '高清,'版本' : '正片,'郎' : '汉语,'副标题' : '中文字幕},{ '来源' : '搜狐,' link':'http://tv.sohu.com ',' swfLink ' : ' http://share。VRS。搜狐。com/75837/v . swftopbar=1 autoplay=false splid=3860 pub _ cate code=',' quality': '高清,'版本' : '正片,'郎' : '汉语,'副标题' : '中文字幕'}]}在公共/JavaScript/目录,增加jquery.json-2.4.js类库
脚本src=' http :/JAVAScript/jquery-1。9 .1 .量滴js '/script script src=' http :/JavaScript/bootstrap。量滴js '/script script src=' http :/JAVAScript/jquery。JSON-2.4。js '/script script src=' http :/JavaScript/movie。js '/脚本/正文/html在公共/JavaScript/目录,增加电影。射流研究…文件,作为前端脚本
$(function(){ var mdata={ };var URL='/JavaScript/电影。JSON ';$.getJSON(url,函数(数据){ mdata=data render _ editor _ form(mdata);render _ event _ form(mdata);});var render _ editor _ form=函数(数据){ $(' # c _ editor ').价值(美元).toJSON(数据));};var render _ event _ form=function(){ $(' # c _ save ').on('click ',function(event){ var data={ };数据[' content ']=mdata;$.ajax({type: 'POST ',url: '/movie/add ',data: data,success: function(数据,文本状态){ if(数据。成功){ $(' # msg ').html(")成功保存!');$('#msg ').添加CLaSS(' alert alert-success ');$(地点)。attr('href ','/movie/' mdata。姓名);} else {$('#msg ').html(数据。err);$('#msg ').添加CLaSS(' alert alert-error ');}}});});};});修改视图/页脚。html,增加电影。射流研究…文件引用,同时增加jquery.json包
脚本src=' http :/JAVAScript/jquery-1。9 .1 .量滴js '/script script src=' http :/JavaScript/bootstrap。量滴js '/script script src=' http :/JAVAScript/jquery。JSON-2.4。js '/script script src=' http :/JavaScript/movie。js '/脚本/正文/html网页效果:http://localhost :3000/movie/add
在模特/电影。js,增加救援方法
MovieDAO.prototype.save=函数(obj,回调){ var instance=new Movie(obj);实例。save(函数(err)){ callback(err);});};在路线/电影。js,调用救援方法
出口。domoviedd=function(req,RES){ console。日志(请求。尸体。内容);var JSON=req。尸体。内容;if(json ._ id){//update } else {//insert movie。save(JSON,function(err){ if(err){ RES . send({ ' success ' : false,' err ' : err });} else { RES . send({ ' success ' : true });}});}};控制台日志
端口3000 { name : }上的快速服务器侦听未来警察,alias: ['未来《X-Cops》,《梅洛金查》],出版: '2010-04-29 ',图片: {封面大: '/img/movie/1 _ big。jpg ',封面商城: '/img/movie/1 _ small。jpg ' },source:[ { source: '优酷,link: 'http://www.youku.com ',swflink : ' http://player。优酷。com/player。PHP/sid/xmty4 nzm 5 ODC 2/v . swf ',质量: '高清,版本: '正片,lang: '汉语,副标题: '中文字幕},{ source: '搜狐,link: 'http://tv.sohu.com ',swflink : ' http://share。VRS。搜狐。com/75837/v . swftopbar=1 autoplay=false plid=3860 pub _ ca quality : '高清,版本: '正片,lang: '汉语,副标题: '中文字幕} ] }POST /movie/add 200 57ms - 21b数据已插入MongoDB
4.查询数据,取出刚增加的记录
模特/电影。js,增加findByName方法
电影刀。原型。findbyname=function(name,callback){ movie。findone({ name : name },函数(err,obj){callback(err,obj);});};路线/电影。js,增加movieJSON
exports.movieJSON=function(req,RES){ movie。findbyname(请求。参数。名称、函数(err,obj){ RES . send(obj);});}前端JavaScript/电影。js,从/电影/json/xxx处取数据
var mdata={ };var URL='/JavaScript/movie . JSON ';var movie=$('#c_editor ')。attr(' movie ')if(movie){ URL='/movie/JSON/' movie;}修改视图/电影. html
text area id=' c _ editor ' name=' c _ editor ' rows=' 10 ' %=(电影?电影='电影' ' ' :'')%/textarea访问我们的网页
http://localhost :3000/电影/未来警察
数据来自/电影/json/未来警察。完成尝试。
修改操作和插入操作类似,我就不做示范了。
以上程序代码可以自行下载学习。
Github地址:https://github.com/bsspirit/nodejs-demo
本地下载:http://xiaozai.jb51.net/201705/yuanma/nodejs-demo(jb51.net)
摘要
以上就是本文的全部内容。希望本文的内容能给你的学习或工作带来一些帮助。有问题可以留言交流。谢谢你的支持。