Message mixer course

hi please can somebody help me to resolve my course probleme
$ node message-mixer.js caesar 4
/home/ccuser/workspace/modules-message-mixer/encryptors.js:2
module.exports.caesarCipher = caesarCipher;
^

ReferenceError: caesarCipher is not defined
at Object. (/home/ccuser/workspace/modules-message-mixer/encryptors.js:2:31)
at Module._compile (module.js:571:32)
at Object.Module._extensions…js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at Object. (/home/ccuser/workspace/modules-message-mixer/message-mixer.js:2:19)
at Module._compile (module.js:571:32)
$

// Import the functions from encryptors.js here.
const encryptor = require(“./encryptors.js”);

const {
caesarCipher,
symbolCipher,
reverseCipher,
} = encryptor;
// Encryption Functions
/////////////////////////////////////////////

// User Input / Output Logic
/////////////////////////////////////////////

const encryptionMethod = getEncryptionMethod();
process.stdin.on(“data”, (userInput) => {
displayEncryptedMessage(encryptionMethod, userInput);
});

/* Helper function for determining which cipher method
the user chose when they ran the program. */
function getEncryptionMethod() {
let encryptionMethod;

const encryptionType = process.argv[2];
if (encryptionType === “symbol”) {
encryptionMethod = symbolCipher;
} else if (encryptionType === “reverse”) {
encryptionMethod = reverseCipher;
} else if (encryptionType === “caesar”) {
let amount = Number(process.argv[3]);
if (Number.isNaN(amount)) {
process.stdout.write(Try again with a valid amount argument. \n);
process.exit();
}
encryptionMethod = (str) => caesarCipher(str, amount);
} else {
process.stdout.write(Try again with a valid encryption type. \n);
process.exit();
}

process.stdout.write("Enter the message you would like to encrypt…\n> ");
return encryptionMethod;
}

/* Helper function for displaying the encrypted message to the user. */
function displayEncryptedMessage(encryptionMethod, userInput) {
let str = userInput.toString().trim();
let output = encryptionMethod(str);
process.stdout.write(\nHere is your encrypted message:\n> ${output}\n);
process.exit();
}

// Declare and export the functions here.
module.exports.caesarCipher = caesarCipher;
module.exports.symbolCipher = symbolCipher;
module.exports.reverseCipher = reverseCipher;

const caesarCipher = (str, amount = 0) => {
if (amount < 0) {
return caesarCipher(str, amount + 26);
}
let output = ‘’;
for (let i = 0; i < str.length; i++) {
let char = str[i];
if (char.match(/[a-z]/i)) {
let code = str.charCodeAt(i);
if (code >= 65 && code <= 90) {
char = String.fromCharCode(((code - 65 + amount) % 26) + 65);
} else if (code >= 97 && code <= 122) {
char = String.fromCharCode(((code - 97 + amount) % 26) + 97);
}
}
output += char;
}
return output;
};

const symbolCipher = (str) => {
const symbols = {
‘i’: ‘!’,
‘!’: ‘i’,
‘l’: ‘1’,
‘1’: ‘l’,
‘s’: ‘$’,
‘$’: ‘s’,
‘o’: ‘0’,
‘0’: ‘o’,
‘a’: ‘@’,
‘@’: ‘a’,
‘e’: ‘3’,
‘3’: ‘e’,
‘b’: ‘6’,
‘6’: ‘b’
}

let output = ‘’;
for (let i = 0; i < str.length; i++) {
let char = str.toLowerCase()[i];

if (symbols[char]) {
  output += symbols[char]
} else {
  output += char;
}

}
return output;
}

const reverseCipher = (sentence) => {
let words = sentence.split(’ ‘);
for (let i = 0; i < words.length; i++) {
words[i] = words[i].split(’‘).reverse().join(’‘);
}
return words.join(’ ');
};

Hey, I got the same error. I believe you need to define the export functions at the bottom of your encryptor.js file.

That should solve the reference error.

thank you for your help

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.