mongodb与express后台

2017-07-29  本文已影响0人  _v_xw

三个部分

  1. Schema 模式

可以配置输入数据的类型,好比string,number等

  1. Model 编译模型

会对传入的Schema进行编译,生成一个构造函数

  1. Document 文档实例化

Model创建了构造函数,我们可以利用这个构造函数进行文档的实例化,可以对数据进行传入,删除,更新等

aqq.get((req,res)=>{
// 使用的是Sql构造函数上的方法,而不是实例后的方法
    Sql.find({}) // 全部查询 
    // Sql.find(传入特定的key:value)就能完成特定对象的批量查询
})

状态保持

利用session来实现(会话)

通过session可以知道用户的状态,也可以对用户状态进行变更,好比30分钟不购物就需要退出登录状态,等待用户再次输入等
还有就是浏览器通信一般用的是http协议,是一种无状态的请求,之间的有请求才连接,请求完成立刻断开连接,这就需要一个新的机制来保存状态也就是cookie(在用户端记录)和session(在服务器端记录)了

var session = require('express-session')

app.use(session({

secret: 'dataSecret'

})
  1. cookie持久化
    var cookieSession = require('cookie-session');app.use(cookieSession())
    该方法就不用直接去设置了
  2. mongodb储存
  3. 内存储存

mongodb指令

use xx进行xx数据库
db.users.find({})

错误提示

  1. DeprecationWarning: Mongoose: mpromise (mongoose's default promise l ibrary) is deprecated, plug in your own promise library instead: http://mongoose js.com/docs/promises.html
  1. 'Cast to ObjectId failed for value "" at path "_id" for
    有以下原因
  1. 安装npm install bcrypt 后找不到这个module。
  1. bCrypt.js:621 throw "No callback function was given."
  1. mogoose 中 model出来的新构造函数查询一个对值时,使用findOne即可,不要使用find({}),因为返回的值不一样,find返回一个数组,findOne返回一个对象
  2. pug编译中可以用a标签href跳转到特定的id标签
a(href = '#idname')   // 注意加#号
#idname
  ....

这样就能跳转到idname下的div了

上一篇 下一篇

猜你喜欢

热点阅读