JSON

让JSON数据直接入库MongoDB

字号+ 作者:H5之家 来源:H5之家 2016-04-08 16:00 我要评论( )

为什么用Nodejs?为什么用MongoDB?从领域语言和代码简洁之道来看,这是我非常关心的问题。

为什么用Nodejs?为什么用MongoDB?从领域语言和代码简洁之道来看,这是我非常关心的问题。

Nodejs基于Javascript,MongoDB脚步同样也是基于Javascript。而且他们的数据存储格式都是JSON,这就是为什么要把他们放在一起的原因了。如果程序前后端能直接处理JSON,我想数据处理过程又可以极大的减化了,代码量又将低少1/5。多么的兴奋啊!让我们来动手验证一下想法吧。

本文重点介绍web前端通过JQuery发起POST提交JSON数据,通过Mongoose直接插入或更新到MongoDB。

工程目录沿用nodejs-demo,增加/mongoose路径及对应文件。

从零开始nodejs系列文章

从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发。Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎。chrome浏览器就基于V8,同时打开20-30个网页都很流畅。Nodejs标准的web开发框架Express,可以帮助我们迅速建立web站点,比起PHP的开发效率更高,而且学习曲线更低。非常适合小型网站,个性化网站,我们自己的Geek网站!!

文章目录

配置Mongoose

创建目录及文件

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

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

1. 配置Mongoose

增加mongoose的类库

cd d:/workspace/project/nodejs-demo npm install mongoose

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

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.InvalidPlatform.Targe

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

mongoose@3.6.10 node_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目录

mkdir models

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

var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/nodejs'); exports.mongoose = mongoose;

指定Mongo的数据库名为nodejs

2.创建目录及文件

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

var mongodb = require('./mongodb'); var Schema = mongodb.mongoose.Schema; var MovieSchema = new Schema({ 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 } }] }); var Movie = mongodb.mongoose.model("Movie", MovieSchema); var MovieDAO = function(){}; module.exports = new MovieDAO();

指定Mongo的数据库集为Movie

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

打开app.js增加访问路径

var express = 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

var Movie = require('./../models/Movie.js'); exports.movieAdd = function(req, res) { if(req.params.name){//update return res.render('movie', { title:req.params.name+'|电影|管理|moive.me', label:'编辑电影:'+req.params.name, movie:req.params.name }); } else { return res.render('movie',{ title:'新增加|电影|管理|moive.me', label:'新增加电影', movie:false }); } }; exports.doMovieAdd = function(req, res) { res.send({'success':true}); };

在views目录,增加movie.html

<% include header.html %> ==> ==> => > </div> <% include footer.html %>

网页效果::3000/movie/add

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

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

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

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

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • SpringMVC @RequestBody接收Json对象字符串

    SpringMVC @RequestBody接收Json对象字符串

    2016-04-11 18:05

  • C++ Builder 里面使用 JsonCpp 和 JsonCpp 支持 UNICODE (UTF

    C++ Builder 里面使用 JsonCpp 和 JsonCpp 支持 UNICODE (UTF

    2016-04-08 15:00

  • VS2013新建MVC5项目,使用nuget更新项目引用后发生Newtonsoft.Json引用冲突的解决办法

    VS2013新建MVC5项目,使用nuget更新项目引用后发生Newtonsoft.Json引

    2016-04-07 14:04

  • 【springmvc学习笔记(18)

    【springmvc学习笔记(18)

    2016-04-06 17:01

网友点评
f