NodeJS 加密模块不适用于 http 模块



我正在使用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,但在最新版本上仍然如此。

原来crypto.scryptSync()是在NodeJS v10.5.0中发布的。由于我以sudo的身份运行脚本,因此使用了旧版本的NodeJS,导致了错误。

相关内容

  • 没有找到相关文章

最新更新