我正在尝试做一些看似简单的事情:
var token = crypto.randomBytes(32);
var wstream = fs.createWriteStream('output.hex');
wstream.write(token);
wstream.end();
运行此代码后,output.hex
文件为空。在代码期间永远不会修改token
。
同样,我试试这个:
// encrypts a message
var token = crypto.randomBytes(32);
var cipher = crypto.createCipher('aes-256-cbc', token);
var enc_msg = cipher.update(msg, 'binary', 'binary');
enc_msg += cipher.final('binary');
// print it
console.log(enc_msg); // prints Øôâ¨7"ªðqâ~è (binary data - good)
// check the type
console.log(type of enc_msg); // prints 'string'
// write it to a file (fails)
var wstream = fs.createWriteStream('output.hex');
wstream.write(enc_msg);
wstream.end();
我在这里缺少什么?该文件始终为空。
答案 0 :(得分:0)
我弄清楚问题是什么。
wstream.write()
函数是异步的(对我来说这并不明显,因为我没有提供回调)。因此,当我的脚本试图写入文件时,它得到我的process.exit(0)
命令(不在原始问题中)并在实际写入之前终止了脚本。
删除强制退出并让脚本在准备工作时就像魅力一样终止。