NodeJS加密模块无法与http模块一起使用

时间:2020-08-03 18:35:05

标签: node.js http scrypt

我正在使用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,但是在最新版本上仍然会发生同样的情况。

1 个答案:

答案 0 :(得分:0)

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