宝哥软件园

利用猫鼬让JSON数据直接插入或更新到MongoDB

编辑:宝哥软件园 来源:互联网 时间:2021-09-05

前言

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)

摘要

以上就是本文的全部内容。希望本文的内容能给你的学习或工作带来一些帮助。有问题可以留言交流。谢谢你的支持。

更多资讯
游戏推荐
更多+