我正在使用NodeJS(使用http模块)运行一个简单的Web服务器,并且试图使用crypto模块创建用户名/密码登录系统。具体来说,我使用crypto.scryptSync()
对密码进行哈希处理。但是,每当我将两者同时运行时,如下所示:
const http = require('http');
const crypto = require('crypto');
console.log(crypto.scryptSync('password', 'salt', 64));
const server = http.createServer((req, res) => {
res.writeHead(200, {
'content-type': 'text/plain'
});
res.end('ok');
});
server.listen(80);
我收到一条错误消息,指出TypeError: crypto.scryptSync is not a function
,但不知道为什么。
我导入模块的方式是否有问题或只是不兼容?
我正在运行NodeJS v12.18.3,但是在最新版本上仍然会发生同样的情况。
答案 0 :(得分:0)
结果crypto.scryptSync()
在NodeJS v10.5.0中发布。由于我以sudo
的身份运行脚本,因此使用了旧版本的NodeJS,从而导致错误。