前言
Nodejs基于Javascript,MongoDB脚步同样也是基于Javascript。而且他们的数据存储格式都是JSON,这就是为什么要把他们放在一起的原因了。如果程序前后端能直接处理JSON,我想数据处理过程又可以极大的减化了,代码量又将低少1/5。多么的兴奋啊!让我们来动手验证一下想法吧。
本文重点介绍web前端通过JQuery发起POST提交JSON数据,通过Mongoose直接插入或更新到MongoDB。
工程目录沿用nodejs-demo,增加/mongoose路径及对应文件。
文章目录
- 配置Mongoose
- 创建目录及文件
- 插入数据,POST提交JSON增加一条记录
- 查询数据,取出刚增加的记录
1. 配置Mongoose
增加mongoose的类库
安装时,有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){//updatereturn 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 class="container-fluid"><div class="row-fluid"><div class="span8"><form><fieldset><legend><%=label%></legend><textarea id="c_editor" name="c_editor" class="span12" rows="10"></textarea><button id="c_save" type="button" class="btn btn-primary">保存</button></fieldset><form></div></div></div><% include footer.html %>网页效果:http://localhost:3000/movie/add
3. 插入数据,POST提交JSON增加一条记录
基础环境,都搭建好后,我们开台准备向mongodb中插入数据。
首先创建一个json数据文件,这样我们可以方便点,直接读入这个文件,创建JSON数据对象了。
在public/javascripts/目录,增加movie.json文件
{"name": "未来警察","alias": ["Future X-Cops ","Mei loi ging chaat"],"publish": "2010-04-29","images":{"coverBig":"/img/movie/1_big.jpg","coverSmall":"/img/movie/1_small.jpg"},"source":[{"source":"优酷","link":"http:///bsspirit/nodejs-demo本地下载:http://xiazai.jb51.net/201705/yuanma/nodejs-demo(jb51.net).rar
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。