关于 KeystoneJS,请参见 JsNoder.com
最近我成功地把一个 KeystoneJS 应用装在了一个 Raspberry Pi Model B 上,系统是用的 Raspbian Wheezy 2014-09-09. 速度其实还不错 (超频到 900mhz),如果用户较少的话普通用用没有问题。但就是 login 的时候特慢,要 20~30 秒左右。 试过用本地的 MongoDB 和远程 MongLab 都这样,忒慢。 后来发现是 JavaScript 的 bcrypt 性能问题。换成 c/c++ 的就可以了,登录验证只要 2~3 秒完成,完全可以接受。发现 Node.js 好像至少有两个纯 js 的 bcrypt 包,一个是 bcryptjs, 貌似 Ghost 就是用的这个包,参见这个 博客 和 Ghost Issue #1207。所以如果要在 Raspberry Pi 上使用 Ghost 也得更换 bcrypt 包。另外一个就是 KeystoneJS 使用的 bcrypt-nodejs 。
如何更换:
- 先转到 Keystone 的目录
cd /your/keystoneapp/path - 安装 c/c++ 版的 bcrypt 包 npm install bcrypt
- 更换 Keystone 的密码包。打开 sudo nano node_modules/keystone/lib/fieldTypes/password.js
- 然后在编辑器里,大概第7行, bcrypt = require(‘bcrypt-nodejs’), 更改为 bcrypt = require(‘bcrypt’), 搞定。这样就可以在 Raspberry Pi 上比较流畅的使用 Keystone 应用了。