[英]console.log and error is not printing
我有一個加密文件的腳本,但是我想打印一個console.log();。 加密之后。 我嘗試了以下操作,但沒有成功:
var figlet = require('figlet');
var encryptor = require('file-encryptor');
var crypto = require('crypto');
var CryptoJS = require("crypto-js");
var node_cryptojs = require('node-cryptojs-aes');
figlet('ZaCrypt', function(err, data) {
if (err) {
console.log('Something went wrong...');
console.dir(err);
return;
}
console.log(data)
});
var message = "Zaseth is my bff";
var key = encrypted_json_str;
var options = {
algorithm: 'blowfish'
};
// Encrypt message
var r_pass = crypto.randomBytes(128);
var r_pass_base64 = r_pass.toString("base64");
var CryptoJS = node_cryptojs.CryptoJS;
var JsonFormatter = node_cryptojs.JsonFormatter;
var encrypted = CryptoJS.AES.encrypt(message, r_pass_base64,
{
format: JsonFormatter
});
var encrypted_json_str = encrypted.toString();
// Encyption complete
// Encrypt file.
encryptor.encryptFile('file.txt', 'encrypted.zaseth', message, key, options, function (err){
if (err) {
console.log("There was an error...");
throw err;
return;
} else {
console.log("File encrypted!");
}
// Encryption complete.
});
為什么這不起作用? 我要在其中打印內容的加密部分位於底部。
我只是嘗試了以下方法,但是沒有用:
// Encrypt file.
encryptor.encryptFile('file.txt', 'encrypted.zaseth', message, key, options, function (err) {
if(err) {
return console.log(err);
}
console.log("File encrypted!");
// Encryption complete.
});
您指定了太多參數。 因此,您的回調位於錯誤的位置。
Encryptor. encryptFile()
Encryptor. encryptFile()
定義了對4-5個參數的處理:
Encryptor.encryptFile = function(inputPath, outputPath, key, options, callback) {
if(typeof options === 'function') {
callback = options;
options = {};
}
// and so on...
您的代碼有6個:
encryptor.encryptFile('file.txt', 'encrypted.zaseth', message, key, options, function(err){
// ^-- what is this?
該message
參數使一切向下移動。 encryptFile()
認為您的消息是密鑰,您的密鑰是選項,您的選項是回調....,並且完全忽略了回調。 由於意外的無效參數類型,它還可能導致在錯誤處理之前引發錯誤。
你有表達
var key = encrypted_json_str
之前
encrypted_json_str = encrypted.toString()
這意味着為key
分配了undefined
(因為那時encrypted_json_str
encryptFile()
仍未undefined
),這將導致encryptFile()
方法拋出錯誤
正如@canon所解釋的那樣,在調用encryptFile()
,您有一個額外的參數message
。 這導致它使用message
參數作為其key
參數,將key
作為options
並將options
作為callback
。 由於您的options
實際上不是函數,因此當encryptFile()
嘗試調用它(認為它是callback
)時,它會引發錯誤,指出callback is not a function
在你調用encryptFile()
方法,刪除message
參數和替換key
與參數encrypted_json_str
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.