简单的nodejs + mongodb CRUD
2015-04-22 23:25
405 查看
User.js
app.js
index.js
settings.js
db.js
/** * Created by Administrator on 2015/4/22. */ var mongodb = require('./db'), BSON = require('mongodb').BSONPure; var User = function (user) { this.firstName = user.firstName; this.lastName = user.lastName; }; User.prototype.AddOne = function (callback) { var user = { firstName: this.firstName, lastName: this.lastName }; mongodb.open(function (err, db) { if (err) { return callback(err); } db.collection('user', function (err, collection) { if (err) { return callback(err); } collection.insert( user, {safe: true}, function (err, newUser) { mongodb.close(); if (err) { return callback(err); } callback(null, newUser[0]); } ) }); }); }; User.prototype.UpdateById = function (Id, callback) { Id = BSON.ObjectID.createFromHexString(Id); var user = { firstName: this.firstName, lastName: this.lastName }; mongodb.open(function (err, db) { if (err) { return callback(err); } db.collection('user', function (err, collection) { if (err) { mongodb.close(); return callback(err); } collection.update( {_id: Id}, user, {upsert: true, multi: false}, function (err, result) { mongodb.close(); if (err) { return callback(err); } callback(null, result); } ); }) }); }; User.DeleteById = function (Id, callback) { if (!Id) { return; } Id = BSON.ObjectID.createFromHexString(Id); mongodb.open(function (err, db) { if (err) { return callback(err); } db.collection('user', function (err, collection) { if (err) { mongodb.close(); return callback(err); } collection.remove({_id: Id}, function (err, result) { mongodb.close(); if (err) { return callback(err); } return callback(null, result); }); }); }); }; User.getAll = function (callback) { mongodb.open(function (err, db) { if (err) { return callback(err); } db.collection('user', function (err, collection) { if (err) { mongodb.close(); return callback(err); } collection.find().toArray(function (err, docs) { mongodb.close(); if (err) { return callback(err); } callback(null, docs); }); }); }); }; module.exports = User;
app.js
var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require('./routes/index'); var users = require('./routes/users'); var app = express(); var settings = require('./settings'); var session = require('express-session'); var MongoStroe = require('connect-mongo')(session); app.use(session({ resave: false, saveUninitialized: true, secret: settings.cookieSecret, cookie: {maxAge: 1000 * 60 * 60 * 24 * 30}, stroe: new MongoStroe({ db: settings.db, host: settings.host, port: settings.port }) })); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); //use flash var flash = require('connect-flash'); app.use(flash()); // uncomment after placing your favicon in /public //app.use(favicon(__dirname + '/public/favicon.ico')); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); routes(app); // catch 404 and forward to error handler app.use(function (req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); }); // error handlers // development error handler // will print stacktrace if (app.get('env') === 'development') { app.use(function (err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: err }); }); } // production error handler // no stacktraces leaked to user app.use(function (err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: {} }); }); module.exports = app;
index.js
var User = require('../models/User'); module.exports = function (app) { /* GET home page. */ app.get('/', function (req, res, next) { console.log('get all the data from table user'); User.getAll(function (err, users) { if (err) { users = []; } res.render('index', { title: 'Node CRUD', users: users } ); }); }); app.post('/', function (req, res) { var user = {}; user.firstName = req.body.firstName; user.lastName = req.body.lastName; var newUser = new User(user); newUser.AddOne(function (err, user) { if (err) { return; } req.flash('success', '添加成功'); res.redirect('/'); }); }); app.post('/delete', function (req, res) { User.DeleteById(req.body.Id, function (err, result) { if (err) { //返回json的数据才会成功 res.send({data: "fail"}); } res.send({data: "success"}); }); //User.UpdateById(1,function(err,result){ // if(err){ // console.log('update err:' + err); // } // console.log('update'+result); //}); }); };
settings.js
/** * Created by Administrator on 2015/4/22. */ module.exports = { cookieSecret: 'NodeCrud', db: 'NodeCrud', host: 'localhost', port: '27017' }
db.js
/** * Created by Administrator on 2015/4/22. */ var setting = require('../settings'), mongodb = require('mongodb'), Db = mongodb.Db, Connect = mongodb.Connection, Server = mongodb.Server; module.exports = new Db( setting.db, new Server(setting.host, setting.port), {safe: true} );
相关文章推荐
- Node.js简单操作MongoDB(CRUD)
- Node.js+Express+MongoDB实现简单登录注册功能
- 为一个 iOS 应用编写一个简单的 Node.js/MongoDB Web 服务
- node.js学习笔记(7)--Node.js与MongoDB简单交互
- 使用Node.js + MongoDB实现一个简单的日志分析系统
- nodejs+express+mongodb简单的例子
- 使用 Angular.js, Node.js 和 MongoDB开发简单案例
- nodejs mongodb crud
- 使用Node.js + MongoDB实现一个简单的日志分析系统
- 使用Node.js 和 MongoDB 为app搭建后端简单教程 附代码
- 简单得不得了的教程-一步一步用 NODE.JS, EXPRESS, JADE, MONGODB 搭建一个网站
- NodeJS+Express+mongoDB简单测试
- 【转】nodejs+express+mongodb简单的例子
- nodejs+express+mongodb简单的例子
- 使用node.js ,Express, 和Mongodb 简历一个简单的Restful 网页服务-part1
- Node.js MongoDB的安装 配置 数据库的CRUD操作 索引 学习笔记文档
- nodejs + express + ejs + mongodb 一个非常简单的前后端开发的实例3
- nodejs+express+mongodb简单实现注册登录
- node.js + express + mongodb 新手写的简单的高校实验室人员及任务管理系统
- Nodejs&express+mongodb完成简单用户登录(即Nodejs入门)