NodeJS крипто-модуль не работает с http-модулем - PullRequest
0 голосов
/ 03 августа 2020

Я запускаю простой веб-сервер, использующий NodeJS (для которого я использую модуль http), и я пытаюсь создать систему входа в систему по имени пользователя и паролю, используя модуль шифрования. В частности, я использую crypto.scryptSync() для sh паролей. Однако всякий раз, когда я запускаю эти два вместе, например, как показано ниже:

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 голосов
/ 03 августа 2020

Оказывается, crypto.scryptSync() был выпущен в NodeJS v10.5.0. Поскольку я запускал свой скрипт как sudo, использовалась более старая версия NodeJS, что приводило к ошибке.

...