express手册之六,结合mongoose查询小demo
来源:互联网 发布:用中文域名的大公司 编辑:程序博客网 时间:2024/04/29 23:23
前置工作:
1.安装好MongoDB
2.express项目装上mongoose插件
3.下面例子还用到一个config-lite插件(将配置看作Object的神器)
config-lite的配置 default.js
第一个模块,关于mongoDB的操作
/** * Created by JadonYuen on 2017/5/24. * MongoDB 相关操作 */ var mongoose = require('mongoose'); //mongoose 插件 操作 mongoDBvar config = require('config-lite')(__dirname); //config-list插件 操作config/default.jsvar connect = mongoose.createConnection(config.mongodb); //建立连接 config.mongodb对应的是 config/default.js下声明const Schema = mongoose.Schema; //使用mongoose的Schemaexports.User = connect.model('User',new Schema({ username : String, password : String}),'user'); //exports一个 UserModel// model方法 三个必备参数 关键最后的 'user' 少了,查询不到结果之余,还不报错,折腾。。。// connect.model('为Model建立一个唯一名称',schema对象,'需要查询在mongoDB中的collectionName')
第二个模块,增加几个对 model 操作的接口,例子只展示了 查询登录接口方法
/** * Created by JadonYuen on 2017/5/24. * User collection 的操作 */var userModel = require('../db/mongoDB').User; //引入 modelmodule.exports = { getLoginUser : function(user,callBack) { //提供外部调用的查询接口 userModel.findOne(user,callBack); //user为一个查询的对象,callback回调函数 } //user = {username : '',password:''}};
第三个模块,相当于一个controller
/** * Created by JadonYuen on 2017/4/25. */var express = require('express');var router = express.Router();var session = require('express-session'); //使用到sessionvar user = require('../model/user'); //引用操作userrouter.post('/',function(req,res,next) { var name = req.body.username; var pwd = req.body.password; user.getLoginUser(req.body,function(err,doc) { //点用user接口,将request.body传入(此时的request.body = {username:'admin'}) if(!err){ if(doc){ //查询结果不为空,则查询成功 session.user = { username : name, password : pwd }; return res.send({ //返回json格式数据 status : 1, msg : '登录成功', user : session.user }); }else{ return res.send({ status : 0, msg : '登录失败' }); } } });});module.exports = router;
上面的例子,对于不熟悉 mongoose来说, Connection --- Schema --- Model 之间的关系必须要弄清
即先有connection,
Schema 可以看作是 一个model的结构描述
Model 可以看做是 MongoDB 的一个 collection ,所以别忘了调用时,要告知 collection的名字了
阅读全文
0 0
- express手册之六,结合mongoose查询小demo
- express之mongoose连接工具的使用
- 初遇Express(小demo)
- Hibernate之HQL查询小Demo
- Node.js 手册查询-4-Express 方法
- nodejs/express+mongodb/mongoose
- Express + Mongoose 基础使用
- mongoose数据查询之bluebird的使用
- NodeJS+Express+mongoose+Jade+bootstrap+jquery+inspector(调试工具)开发网站demo总结
- Hibernate之Criteria标准化对象查询小Demo
- Hibernate之原生Native SQL查询小Demo
- express手册之三,基于ejs模板创建express项目
- express手册之二,快速搭建
- express手册之四,routing(路由)
- express手册之五,request和response
- netty与protobuf结合开发小demo
- nodejs+express+ejs+mongoose实例
- Express + Mongoose 极简入门
- BZOJ 3732: Network
- HDU1015
- 用Cmake来编译fortran
- spring @Transactional注解参数详解
- 界面设计相关的知识
- express手册之六,结合mongoose查询小demo
- Spring 基于xml配置方式的事务
- Vue2.0学习——生命周期
- Discriminatively Trained Deformable Part Models
- ftp.getReplyCode()返回值是503
- Java设计模式——抽象工厂(Abstract Factory)以及工厂模式总结
- JDBC事务[思维导图]
- 每天学一点Swift----面向对象上(二)
- 轮廓线重建:二维平行轮廓线重建理论和方法