express使用MongoDB数据库
来源:互联网 发布:mac os x安装光盘映像 编辑:程序博客网 时间:2024/06/01 13:42
一、在项目中添加mongodb数据库
npm install –save mongoose
二、连接操作,写在你想要开始连接mongodb的地方,一般放在app.js当中。
然后我们需要搞清楚mongoose的几个概念:
Schema: 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力
Model: 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对
Entity: 由Model创建的实体,他的操作也会影响数据库
Schema、Model、Entity的关系请牢记,Schema生成Model,Model创造Entity,Model和Entity都可对数据库操作造成影响,但Model比Entity更具操作性。
根据以上几点,我们了解了一个大致的流程之后,就知道要首先创建什么,然后在创建什么。
1、创建目录与文件
config.js用来保存mongodb的连接地址:
// 数据库地址: 'mongodb://用户名:密码@ip地址:端口号/数据库';module.exports = { mongodb : 'mongodb://cha:root@localhost:27017/ch_db'}
mongoose.js用来连接mongodb数据库并引用定义Schema和Model:
const mongoose = require('mongoose');const config = require('./config');module.exports = ()=>{ // mongoose.Promise = global.Promise;//如果有promise的问题,可以用这个试试 mongoose.connect(config.mongodb);//连接mongodb数据库 // 实例化连接对象 var db = mongoose.connection; db.on('error', console.error.bind(console, '连接错误:')); db.once('open', (callback) => { console.log('MongoDB连接成功!!'); }); return db;}
schemas.js用来定义Schema:
var mongoose = require('mongoose');var Schema = mongoose.Schema;//创建Schemavar userSchema = new Schema({ username:String, password:String});module.exports = userSchema;
models.js用来定义Model:
var mongoose = require('mongoose');var UserSchema = require('../schemas/UserSchema');//创建model,这个地方的ch_user对应mongodb数据库中ch_users的conllection。//mongoose会自动改成复数,如模型名:xx―>xxes, kitten―>kittens, money还是moneyvar User = mongoose.model('ch_user',UserSchema);module.exports = User;
2、在app.js中添加数据库的引用
var mongoose = require('./config/mongoose.js');var db = mongoose();
3、在路由routes中使用数据库
var express = require('express');var router = express.Router();var User = require('../models/User');// 引入模型router.get('/',function(req,res,next){ res.render('login');});router.post('/submit',(req,res,next)=>{// var user = new User({// username:'admin',// password:'123'// });// user.save((err)=>{ //添加// console.log('save status:', err ? 'failed' : 'success');// });// User.find({ //查找// username:'admin',// password:'123'// },(err, docs)=>{// if(err){// res.send('server or db error');// }else{// console.log('登录成功用户:'+docs);// if(docs.length==0){// res.send('用户名或密码有误');// }else{// req.session.user = {// _id:docs[0]._id,// username:docs[0].username// };// res.send('login success');// }// }// }); User.findOne({ //查找一条 username:'admin', password:'123' },(err, doc)=>{ if(err){ res.send('server or db error'); }else{ console.log('登录成功用户:'+doc); if(doc==null){ res.send('用户名或密码有误'); }else{ req.session.user = { _id:doc._id, username:doc.username }; res.send('login success'); } } })});module.exports = router;
4 0
- express使用MongoDB数据库
- node.js+express连接mongodb数据库
- 使用 Express + MongoDB 搭建多人博客
- express MongoDB
- nodejs开发——mongodb数据库与express框架结合
- Mongodb数据库使用
- mongodb 数据库安装使用
- Mongodb数据库使用
- Mongodb数据库使用
- 欢迎使用MongoDB数据库
- Mongodb数据库使用
- spring使用mongodb数据库
- laravel 使用mongodb数据库
- 使用Express + Socket.io + MongoDB实现简单的聊天
- 60分钟学会使用Node.js+Express+Ejs+mongoDB
- 使用vuejs+express+mongodb 开发一款销售仓库管理系统
- node.js 之 express框架+MongoDB(前端使用vue)
- 使用MongoDB类操作MongoDB数据库总结
- IDEA中集成struts2+mybatis
- 我见过最简单,方便的屏幕适配
- Python实现Huffman Code
- Python进阶(十二)-浅谈python中的方法
- JDK 源码解析 —— ThreadLocal
- express使用MongoDB数据库
- Dubbo学习笔记(二) 环境配置
- 可用性测试
- 病毒(3602017秋招真题)
- 如何将Oracle导出的数据导入MongoDB
- webots自学笔记(一)软件界面和简单模型仿真
- MySql数据库主(master)从(slave)配置以及原理
- hdu1250 Hat's Fibonacci
- 悲观锁和乐观锁的区别