迁移Simple-TODO Nodejs实现版至CouchDB数据库
来源:互联网 发布:雄迈cms客户端下载 编辑:程序博客网 时间:2024/05/17 09:15
这是suqian大牛的Simple-TODO Nodejs 实现版 :http://cnodejs.org/topic/4f16442ccae1f4aa270010d5
最近他把数据库改用MongoDB了,部署的方法可以参考这里:http://blog.csdn.net/kunshan_shenbin/article/details/7725415
由于近阶段一直在研究CouchDB,所以也弄了个couchdb的实现,代码完全基于上面提到的Simple-TODO Nodejs实现。
步骤如下:
1. 下载Simple-TODO Nodejs实现版至本地。
git clone https://github.com/fengmk2/todo.git
2. 安装couchdb的驱动插件cradle
进入todo目录后运行 npm install cradle
3. 只需对代码稍作修改即可。
config.js中追加如下3个设置项:
exports.db_port = 5984;exports.db_url = 'http://localhost';exports.db_name = 'todo_dev';
common/db.js修改如下:
"use strict";/** * Module dependencies. */var cradle = require('cradle');var config = require('../config');var connection = new(cradle.Connection)(config.db_port, config.db_port, {cache: true,raw: false});var db = connection.database(config.db_name);db.exists(function (err, exists) {if (err) {console.log('error', err);} else if (exists) {console.log('database exists, please enjoy.');} else {console.log('database does not exist, create a new one.');db.create(function() {db.save('_design/todo', {views: {all: {map: 'function (doc) { emit(doc._id, doc) }'} }});});}});module.exports = db;
controllers/todo.js在操作数据库部分需要改成通过cradle对couchdb的操作。
"use strict";/** * Module dependencies. */var config = require('../config');var db = require('../common/db');exports.index = function (req, res, next) {db.view('todo/all', function (err, result) {if (err) {return next(err);}var data = new Array();result.forEach(function (row) {data.push(row);});res.render('index.html', {todos: data});});};exports.new = function (req, res, next) { var title = req.body.title || ''; title = title.trim(); if (!title) { return res.render('error.html', {message: '标题是必须的'}); } db.save({title: title, post_date: new Date()}, function (err, result) { if (err) { return next(err); } res.redirect('/'); });};exports.view = function (req, res, next) { res.redirect('/');};exports.edit = function (req, res, next) { var id = req.params.id; db.get(id, function (err, doc) { if (err) { return next(err); } if (!doc) { return next(); } res.render('todo/edit.html', {todo: doc}); });};exports.save = function (req, res, next) { var id = req.params.id; var title = req.body.title || ''; title = title.trim(); if (!title) { return res.render('error.html', {message: '标题是必须的'}); } db.merge(id, {title: title}, function (err, result) { if (err) { return next(err); } res.redirect('/'); });};exports.delete = function (req, res, next) { var id = req.params.id; db.get(id, function (err, doc) { var rev = doc._rev; db.remove(id, rev, function (err, result) { if (err) { return next(err); } res.redirect('/'); }); });};exports.finish = function (req, res, next) { var finished = req.query.status === 'yes' ? 1 : 0; var id = req.params.id; db.merge(id, {finished: finished}, function (err, result) { if (err) { return next(err); } res.redirect('/'); });};
完毕,启动运行即可。
- 迁移Simple-TODO Nodejs实现版至CouchDB数据库
- 迁移Simple-TODO Nodejs实现版至CouchDB数据库 --- 用户认证
- nodejs web开发入门: Simple-TODO Nodejs 实现版
- 部署最新的Simple-TODO Nodejs 实现版
- Simple-TODO Nodejs版配置运行
- Nodejs脚本实现从mongo数据库迁移数据至mysql数据库
- TODO-4:nodejs 实现一部漫画爬取
- 文档数据库系统CouchDB
- Shell 数据库迁移实现
- Kettle实现数据库迁移
- 数据库迁移--java实现
- Simple Ruby interface to CouchDB --- Leanback
- rman实现oracle数据库迁移
- 数据库迁移怎么实现啊
- python实现数据库迁移脚本
- Flask-Migrate实现数据库迁移
- java play Framework 实现Todo案例(mysql数据库)
- 迁移数据库至ASM
- 声明与定义的区别
- 自定义 UINavigationController
- 中继器,集线器和网桥
- linux likely and unlikely解析
- Ubuntu 中增加管理员账户(sudoer)
- 迁移Simple-TODO Nodejs实现版至CouchDB数据库
- iOS 全屏显示View
- linux下解决用户不能执行sudo的方法
- experiment: How to determine what services are running under a SVCHOST.EXE process
- STL源码剖析---list
- 取消Windows 2003登录及关机提示
- 图片中识别出图元(1)
- Git 分支
- oracle优化书籍推荐