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

你用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 回复

还没用过啊

@leonzhao 可以尝试下 From Noder

回到顶部

AltStyle によって変換されたページ (->オリジナル) /