loopback小技巧分享 —— 提高注册和登陆速度
发布于 2 个月前 作者 Amastyer 343 次浏览 来自 分享

你用slc工具生成了一个新项目 你想先注册一个用户用于测试 于是你打开了StrongLoop API Explorer,找到了User下的POST /user 你花了一点时间想好了用户名和密码,并输入了常用的邮箱,并点击了确认 … 你感觉像是等待了几个世纪那么漫长,数据终于返回了 你开开心心的拿着你的用户名和密码去调用User下的POST /users/login … 此时的你内心OS应该是:“啥破框架怎么这么慢?” 如果你是一位细心的同学,并且仔细阅读了官方文档 Managing users,你应该不会有此疑惑。 解决方案如文档中所说:

npm install --save bcrypt

聪明的你此刻一定想问为啥我只是安装了bcrypt模块速度就飞起来了,这问题可算是问到点子上 我们一起来看一段源代码(位于loopback/common/models/user.js):

var bcrypt;
try {
  // Try the native module first
  bcrypt = require('bcrypt');
  // Browserify returns an empty object
  if (bcrypt && typeof bcrypt.compare !== 'function') {
    bcrypt = require('bcryptjs');
  }
} catch (err) {
  // Fall back to pure JS impl
  bcrypt = require('bcryptjs');
}

我们再看loopback的package.json中的依赖:

 {
    "async": "^2.0.1",
    "bcryptjs": "^2.1.0",
    "bluebird": "^3.1.1",
    "body-parser": "^1.12.0",
    "canonical-json": "0.0.4",
    "debug": "^2.1.2",
    "depd": "^1.0.0",
    "ejs": "^2.3.1",
    "express": "^4.14.0",
    "inflection": "^1.6.0",
    "loopback-connector-remote": "^3.0.0",
    "loopback-datasource-juggler": "^3.0.0",
    "isemail": "^1.2.0",
    "loopback-phase": "^1.2.0",
    "nodemailer": "^2.5.0",
    "nodemailer-stub-transport": "^1.0.0",
    "serve-favicon": "^2.2.0",
    "stable": "^0.1.5",
    "strong-globalize": "^2.7.0",
    "strong-remoting": "^3.0.0",
    "uid2": "0.0.3",
    "underscore.string": "^3.0.3"
  },

看到这儿相信你已经完全明白了吧,优先导入bcrypt模块,如果引入失败,替换为bcryptjs模块,loopback默认附带的只有bcryptjs哦

2 回复

还没用过啊

回到顶部