您的位置:首页 > 数据库 > Mongodb

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

2016-04-09 18:34 645 查看
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

<!DOCTYPE html>

<html>

<head>

<title><%= title %></title>

<link rel='stylesheet' href='../static/css/style.css' />

<meta charset="utf-8" />

<style type="text/css">

table { border:1px solid green;}

table thead tr th{ border:1px solid green;}

table tbody tr td{ border:1px solid green;}

</style>

</head>

<body>

<p>

<a href="add.html">增加</a>

</p>

<h1>DEMO List</h1>

<table>

<thead>

<tr>

<th>id</th>

<th>uid</th>

<th>title</th>

<th>content</th>

<th>createTime</th>

<th>操作</th>

</tr>

</thead>

<tbody>

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

<tr>

<td><%=demo._id%></td>

<td><%= demo.uid %></td>

<td><%= demo.title %></td>

<td><%= demo.content %></td>

<td><%= demo.createTime %></td>

<td><a href="del.html?id=<%=demo._id%>">Delete</a> | <a href="modify.html?id=<%=demo._id%>">Update</a></td>

</tr>

<% }); %>

</tbody>

</table>

</body>

</html>

add.html

<!DOCTYPE html>

<html>

<head>

<title><%= title %></title>

<meta charset="utf-8" />

<link rel='stylesheet' href='../static/css/style.css' />

<style type="text/css">

</style>

</head>

<body>

<h1>

增加

</h1>

<form method="post">

uid : <input type="text" name="uid"/><br/>

title:<input type="text" name="title"/><br/>

content:<textarea name="content"></textarea><br/>

<input type="submit" value="submit"/>

<input type="reset" value="reset"/>

</form>

</body>

</html>

modifty.html

<!DOCTYPE html>

<html>

<head>

<title><%= title %></title>

<link rel='stylesheet' href='../static/css/style.css' />

<meta charset="utf-8" />

<style type="text/css">

</style>

</head>

<body>

<h1>

修改

</h1>

<form method="post">

uid : <input type="text" name="uid" value="<%=demo.uid%>"/><br/>

title:<input type="text" name="title" value="<%=demo.title%>"/><br/>

content:<textarea name="content"><%=demo.content%></textarea><br/>

<input type="hidden" name="id" value="<%=demo._id%>"/>

<input type="submit" value="submit"/>

<input type="reset" value="reset"/>

</form>

</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: