使用nodejs操作mongodb来实现增删改查
2014-10-10 11:37
686 查看
本文主要讲解使用nodejs操作mongodb,并使用express实现增删改查
本地环境 win7 nodejs v0.10.29 express 4.9.0 mongodb2.4.10
文章末尾有本工程的下载链接,初学者可以学习,高手请忽略
使用express创建一个todo的express工程
![](https://oscdn.geek-share.com/Uploads/Images/Content/202007/31/5e973abfa776cf359679f61ac426443a)
修改package.json,在dependencies下面添加"mongoose":">= 2.3.1"
我本地修改后的package.json
关键代码tasks.js
效果图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202007/31/53f99a2950b4858c940ffcac775969ba)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202007/31/9f70c1f90939b0e065177a07cf25186c)
笔者在刚做新增操作的时候(按照书上的例子),遇到了_id不能为空等等问题,google了半天没有解决
后来换了这种方式,就解决了。
本文工程下载地址:http://download.csdn.net/detail/wang_situ/8020545
顺便附上一个mongodbVUE的下载地址:http://download.csdn.net/detail/wang_situ/8019707
这个是Windows下的MongoDB客户端MongoVUE 这是最后一个全功能的不收费的版本。
本地环境 win7 nodejs v0.10.29 express 4.9.0 mongodb2.4.10
文章末尾有本工程的下载链接,初学者可以学习,高手请忽略
使用express创建一个todo的express工程
修改package.json,在dependencies下面添加"mongoose":">= 2.3.1"
我本地修改后的package.json
{ "name": "todo", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "express": "~4.9.0", "body-parser": "~1.8.1", "cookie-parser": "~1.3.3", "morgan": "~1.3.0", "serve-favicon": "~2.1.3", "debug": "~2.0.0", "jade": "~1.6.0", "mongoose":">= 2.3.1" } }
关键代码tasks.js
var express = require('express'); var router = express.Router(); var mongo = require('mongoose'); /* 连接本地mongodb */ mongo.connect("mongodb://127.0.0.1:27017/test",function(err){ if(!err){ console.log("connected to Mongodb"); }else{ throw err; } }); var Schema = mongo.Schema, ObjectId = Schema.ObjectId; var Task = new Schema({ task:{type: String} }); /*指定 mongodb 文档的type,为新增用 此处新增实际的文档名称问 db.task2 之前我就混淆了 */ var TaskModel = mongo.model("task2",Task); /*指定 mongodb 文档的type,查询用 此处查询实际的文档名称问 db.task2 */ var TaskQuery = mongo.model("task2"); /* task首页,执行了 db.task2.find() 将结果展示在首页 */ router.get('/', function(req, res) { TaskQuery.find({},function(err,docs){ console.log(docs); res.render('tasks.jade',{title:'Todo Task Page',docs:docs}); }); }); /* 新建task */ router.get('/new', function(req, res) { res.render('newtask.jade',{title:'New Task Page'}); }); /* 新增task表单提交请求 */ router.post("/add.do",function(req,res){ var blog1 = new TaskModel(); blog1.task=req.body.task; blog1.save(function(err){ if (err) { console.log('save failed'); return; } res.redirect("/tasks") ; }); }); /* 编辑,查询数据并返回到页面 */ router.get('/edit/:id', function(req, res) { TaskQuery.findById(req.params.id,function(err,doc){ res.render('edittask.jade',{title:'Todo Task Page',task:doc}); }); }); /* 编辑表单提交请求 */ router.post("/edit.do/:id",function(req,res){ TaskQuery.findById(req.params.id,function(err,doc){ doc.task = req.body.task; doc.save(function(err){ if(!err){ res.redirect("/tasks") ; }else{ throw err; } }); }); }); /* 删除请求 */ router.get("/delete/:id",function(req,res){ console.log(req.params.id); TaskQuery.findById(req.params.id,function(err,doc){ if(!doc){ return next(new NotFound("Doc not found")) }else{ doc.remove(function(){ res.redirect("/tasks"); }) } }); }); module.exports = router;
效果图
笔者在刚做新增操作的时候(按照书上的例子),遇到了_id不能为空等等问题,google了半天没有解决
后来换了这种方式,就解决了。
本文工程下载地址:http://download.csdn.net/detail/wang_situ/8020545
顺便附上一个mongodbVUE的下载地址:http://download.csdn.net/detail/wang_situ/8019707
这个是Windows下的MongoDB客户端MongoVUE 这是最后一个全功能的不收费的版本。
相关文章推荐
- nodejs-第四天-使用MongoDB、shell增删改查操作、聚集集合操作
- nodejs连接mongodb示例,实现对数据的增删改查操作(跳过不必要的坑) Windows版
- Android开发(10)使用SQLiteDatabase操作SQLite数据库实现增删改查(源码)
- MongoDB_03之使用shell命令实现对文档数据的操作
- myBatis 实现用户表增删查改操作<方法1 没有使用接口的>(最终版)
- Ubuntu下MongoDB安装&使用NodeJS操作MongoDB
- 用nodejs实现爬虫后使用mongodb存贮
- Android开发(10)使用SQLiteDatabase操作SQLite数据库实现增删改查(源码)
- MongoDB使用java代码实现增删改查
- 使用VS2015和Nhibernate实现与MySql数据库连接,实现增删改查操作
- Mongodb-使用javaDriver 实现增删改查
- Java操作MongoDB实现增删改查
- mongodb使用-增删改查、colleciton关联、_id作为主键实现update
- PHP程序中使用PDO对象实现对数据库的增删改查操作(PHP+smarty)
- pymongo实现对mongodb进行增删改查操作
- MongoDB_02之使用shell命令实现对数据库的操作
- nodejs 使用mongoose 操作mongodb
- C#2005中使用控件DataGridView实现对数据库增删改查操作
- 使用Nodejs 连接数据库实现增删改查功能库
- 用java实现对MongoDB的基本操作(增删改查)