无密码和mongostore

时间:2016-08-07 13:14:30

标签: node.js git mongodb npm-install password-less

我为无密码示例克隆了一个github repo(https://github.com/rbudiharso/smsauth-example),但是当我尝试从package.json进行npm安装时

ERR开始弹出以下信息。

其中一条错误消息指出我不知道的node-gyp rebuild

另一条错误消息指出problem with bcrypt

我尝试安装但失败的模块是passwordless-mongostore(可在npm上找到)

因此,当我尝试安装node-gyp时,以下错误日志仍然存在。

WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp ERR! configure error 
gyp ERR! stack Error: Can't find Python executable "/path/to/executable/python2.7", you can set the PYTHON env variable.
gyp ERR! stack     at failNoPython (/home/ubuntu/.nvm/versions/node/v4.4.5/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:401:14)
gyp ERR! stack     at /home/ubuntu/.nvm/versions/node/v4.4.5/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:330:11
gyp ERR! stack     at F (/home/ubuntu/.nvm/versions/node/v4.4.5/lib/node_modules/npm/node_modules/which/which.js:70:16)
gyp ERR! stack     at E (/home/ubuntu/.nvm/versions/node/v4.4.5/lib/node_modules/npm/node_modules/which/which.js:82:29)
gyp ERR! stack     at /home/ubuntu/.nvm/versions/node/v4.4.5/lib/node_modules/npm/node_modules/which/which.js:91:16
gyp ERR! stack     at /home/ubuntu/.nvm/versions/node/v4.4.5/lib/node_modules/npm/node_modules/which/node_modules/isexe/index.js:44:5
gyp ERR! stack     at /home/ubuntu/.nvm/versions/node/v4.4.5/lib/node_modules/npm/node_modules/which/node_modules/isexe/access.js:8:5
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:82:15)
gyp ERR! System Linux 4.2.0-c9
gyp ERR! command "/home/ubuntu/.nvm/versions/node/v4.4.5/bin/node" "/home/ubuntu/.nvm/versions/node/v4.4.5/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/ubuntu/workspace/node_modules/passwordless-mongostore/node_modules/bcrypt
gyp ERR! node -v v4.4.5
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok 
npm ERR! Linux 4.2.0-c9
npm ERR! argv "/home/ubuntu/.nvm/versions/node/v4.4.5/bin/node" "/home/ubuntu/.nvm/versions/node/v4.4.5/bin/npm" "install"
npm ERR! node v4.4.5
npm ERR! npm  v2.15.5
npm ERR! code ELIFECYCLE

npm ERR! bcrypt@0.8.7 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the bcrypt@0.8.7 install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the bcrypt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs bcrypt
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! 
npm ERR!     npm owner ls bcrypt
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/ubuntu/workspace/npm-debug.log

所以我只是想在编写所有内容之前安装并运行该项目,有人可以帮助这个吗?

1 个答案:

答案 0 :(得分:2)

即使paswordless-mongostore是NPM模块,它也具有Python依赖性。它直接取决于bcrypt,它直接或间接地依赖于node-gyp

  

node-gyp是一个用Node.js编写的跨平台命令行工具,用于编译Node.js的本机插件模块。它捆绑了Chromium团队使用的gyp项目,并消除了处理构建平台各种差异的痛苦。

gyp本身为written in Pythonnode-gyp直接包含Python code。您看到的错误来自configure.js file and is triggered when Python is not found

您至少有两个选择:

  • 安装Python。

    根据您的环境,这可能从简单的单行命令到完全不可行。

  • 使用其他库,例如passwordless-mongostore-bcrypt-node

    passwordless-mongostore自述文件包含以下建议:

      

    令牌存储在MongoDB数据库中,并使用bcrypt进行散列和加盐。 如果您在安装bcrypt时遇到问题(尤其是在Windows上),您还可以考虑使用MongoStore的slower but pure-JS version