开发者问题收集

无法读取未定义的属性“_handle”->Meteor + Nodejs + 尝试运行 bcrypt

2017-08-27
1079

我正在尝试添加 bcryptjs 包并在我的 Meteor 应用中使用它。

我已经通过 meteor npm install --save bcrypt 安装了 bcrypt,一切顺利。

我使用 import bcrypt from 'bcrypt'; 开始使用 bcrypt 函数。

但是,我遇到了这个问题,控制台日志抛出了此错误:

Uncaught TypeError: Cannot read property '_handle' of undefined
at modules.js?hash=0a5b088c5613f9a01f50dd13461d2cc4ca666b66:35733
at Array.forEach (<anonymous>)
at module.exports (modules.js?hash=0a5b088c5613f9a01f50dd13461d2cc4ca666b66:35732)
at log.js (modules.js?hash=0a5b088c5613f9a01f50dd13461d2cc4ca666b66:29972)
at fileEvaluate (modules-runtime.js?hash=8587d188e038b75ecd27ed2469a52b269e38fb62:343)
at require (modules-runtime.js?hash=8587d188e038b75ecd27ed2469a52b269e38fb62:238)
at node-pre-gyp.js (modules.js?hash=0a5b088c5613f9a01f50dd13461d2cc4ca666b66:27190)
at fileEvaluate (modules-runtime.js?hash=8587d188e038b75ecd27ed2469a52b269e38fb62:343)
at require (modules-runtime.js?hash=8587d188e038b75ecd27ed2469a52b269e38fb62:238)
at bcrypt.js (modules.js?hash=0a5b088c5613f9a01f50dd13461d2cc4ca666b66:26761)

经过一番挖掘,似乎 set-blocking 节点包抛出了此错误(没有 stream ,而包使用 stream._handle )。

我在 SO 上找不到任何关于 Meteor 上下文的具体答案。

有人可以帮忙吗?

提前致谢。

2个回答

请改用 bcryptjs

https://www.npmjs.com/package/bcryptjs

您的服务器配置可能不寻常,导致您无法按预期方式使用 bcrypt

DoctorPangloss
2017-09-08

出现此问题的原因是您在客户端上加载了 bcrypt 库。

仅在 Meteor 服务器中运行的文件中导入 bcrypt 库。

Adam Wolski
2021-10-22