mogodb的一些小事 mongodb+express+node.js增删改查

mongod.exe  数据库运行

mongo.exe    命令行对数据库的查阅

连接数据库是mongod.exe
mongo.exe是可以查看数据表的,所以必须先mongod.exe
启动起来才能启动mongo.exe

npm init 会生成package.json文件,这是一个包管理的文件

之后利用npm install 下载的文件都会纪录在json文件中

最好先初始化之后再安装文件

node_modules是使用npm install所安装的目录文件

mongodb的命令

 show collections是查询所有的表
db.表名.count()查询条数
 db.表名.find({}) 查询所有数据
因为mongo从ex3到ex4我也走了不小的弯路,现在把一个简单的实例放出来,ex3改成ex4的也会在后面注释,希望可以帮到更多人
app.js
var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var path = require('path');
var methodOverride = require('method-override');//协助处理POST请求伪装PUT、DELETE和其他HTTP method
//app.use(express.methodOverride());
var ejs = require('ejs');
var favicon=require('serve-favicon');
var logger=require('morgan');//这个是新版本的logger
var errorHandler = require('errorhandler');//install  express.errorHandler()
var bodyParser = require('body-parser');//express.bodyParser旧版本的
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.engine('html',ejs.__express);
app.set('view engine', 'html');
app.use(logger('dev'));//日志输出会不同颜色,区分
//app.use(favicon(__dirname + '/public/favicon.ico'));//设置favicon


app.use(methodOverride());
app.use(bodyParser.json());//body-parser 解析json格式数据//app.use(express.json());
app.use(bodyParser.urlencoded({ extended: true }));//app.use(express.urlencoded()); application/x-www-form-urlencoded也是一种编码格式
routes(app);//app.use(app.router);ex3的形式
app.use(express.static(path.join(__dirname, 'static')));//所有静态资源的引用




if ('development' == app.get('env')) {//获取环境变量   开发环境和生产环境
   app.use(errorHandler());//当出现错误时把错误信息返回给客户端
}


//app.get('/', routes.index);这种形式已经被抛弃了,改成index.js中的情形




app.listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

model文件夹  model.Js

var mongoose = require('mongoose');
var Schema = mongoose.Schema;


var demoSchema = new Schema({
uid : String,
title:String,
content:String,
createTime : { type: Date, default: Date.now }
});


exports.Demo = mongoose.model('Demo',demoSchema);

routes文件夹   index.js

var mongoose = require('mongoose');
var model = require('../model/demo.js');
var Demo = model.Demo;


mongoose.connect('mongodb://localhost/myWeb');


module.exports = function(app){
app.get('/', function(req, res){
Demo.find(function(err,docs){//没有查询条件,返回全部值
res.render('index', {
title:'Express Demo Example',
demos:docs
});
});
})
app.get('/add.html',function(req, res){
console.log('----here');
res.render('add.html', {title :'添加 demo list'});
});
app.post('/add.html', function(req, res){
var demo = new Demo({
uid : req.body.uid,
title: req.body.title,
content : req.body.content
});
console.log('create----'); 
demo.save(function(err,doc){
console.log(doc);
res.redirect('/');
});
});
app.get('/del.html',function(req, res){
var id = req.query.id;
console.log('id = ' + id);
if(id && '' != id) {
console.log('----delete id = ' + id);
Demo.findByIdAndRemove(id, function(err, docs) {
console.log('delete-----'+ docs);
res.redirect('/');
});
}
});
app.get('/modify.html', function(req, res){
var id = req.query.id;
console.log('id = ' + id);
if(id && '' != id) {
console.log('----delete id = ' + id);
Demo.findById(id, function(err, docs){
console.log('-------findById()------' + docs);

res.render('modify.html',{title:'修改ToDos',demo:docs});
});
};
});
app.post('/modify.html', function(req, res){
var demo = {
uid : req.body.uid,
title: req.body.title,
content : req.body.content
};
var id = req.body.id; //因为是post提交,所以不用query获取id
if(id && '' != id) {
console.log('----update id = ' + id + "," + demo);
Demo.findByIdAndUpdate(id, demo,function(err, docs) {
console.log('update-----'+ docs);
res.redirect('/');
});
}
});
app.post('/add.html', function(req, res){
var demo = new Demo({
uid : req.body.uid,
title: req.body.title,
content : req.body.content
});

console.log('create----'); 
demo.save(function(err,doc){
console.log(doc);
res.redirect('/');
});
});
}

views文件夹  index.html



 
    <%= title %>
   
   


 
 


增加


   

DEMO List


    














<% demos.forEach(function( demo ){ %>








<% }); %>

iduidtitlecontentcreateTime操作
<%=demo._id%><%= demo.uid %><%= demo.title %><%= demo.content %><%= demo.createTime %>Delete | Update

 

add.html



 
    <%= title %>
   
   


 
 


增加




uid :

title:

content:





  

 

modifty.html



 
    <%= title %>
   


 
 


修改




uid :

title:

content:






  

 


你可能感兴趣的:(node学习)