Ошибка типа: CryptoJS не определен

javascript #reactjs #jsx #cryptojs

#javascript #reactjs #jsx #cryptojs

Вопрос:

Я работаю над проектом в ReactJS, и я хочу реализовать функцию AES из библиотеки CyptoJS. Но когда я выполняю событие, которое запускает использование шифрования AES, я получаю следующую ошибку: Ошибка типа: crypto_js__WEBPACK_IMPORTED_MODULE_1__.CryptoJS не определен

 import React, {useState} from 'react';
import {CryptoJS} from 'crypto-js';
export function Register(){
    var body = /* a JSON with information from the register */
    var encyMssg = CryptoJS.AES.encrypt(JSON.stringify(body), "key").toString();

    return(/* HTML COMPONENT*/);
}
 

Ошибка отображается в строке var encyMssg, и этот скрипт написан в файле .jsx. Какое-либо решение? Спасибо за ваше время.

РЕШАЕМАЯ большое спасибо. Проблема, как говорили некоторые из вас, заключалась в {} в строке импорта; правильный способ импорта библиотеки был:

 import CryptoJS from 'crypto-js';
 

Комментарии:

1. Вы уверены, что именно так он импортируется? Не могли бы вы, пожалуйста, перепроверить документацию . я думаю, так и должно быть import CryptoJS from 'crypto-js' .

Ответ №1:

Убедитесь, что вы установили crypto-js с помощью

npm install crypto-js


Затем в вашем модуле импорта файлов JS, который вы хотите использовать.

import aes from 'crypto-js/aes';

Теперь вы можете использовать aes, как показано ниже.

aes(value, key).toString()


Вот рабочий пример stackblitz.

React Crypto AES StackBlitz