如何在NodeJS中创建同步模块

时间:2017-10-23 15:59:57

标签: javascript node.js asynchronous encryption module

我已经问了这个问题,但我觉得我没有正确地问它。 我试图在NodeJS中创建一个小加密模块,但我很难掌握它的异步性质。

首先,在调用脚本后,我的主文件中的结果变量是 undefined 一个毫秒,我原以为是。

此外,在加密发生时处理文件,而不是之前。

请注意,我不希望加密文件本身。

最大的问题: 如何让一切顺利运行? :d

www.js

var mod = require('./mymodule.js')
var result = mod.doencrypt();

mymodule.js

module.exports.doencrypt = function() {
    var content = processFile(); //Open a file, increment counter
    var key = generateKey();
    var iv = generateIV();
    var encrypt = doEncryption(content);
    return encrypt;
}

//File manipulation
async function openFile() {
  return new Buffer(await readFile('monolitic.txt', "binary"));
}
async function saveFile(bin) {
  await fs.writeFile("monolitic.txt", bin, "binary", function(err) {
      if(err) {
          console.log(err);
      } else {
          console.log("The monolitic file was saved!");
          return bin;
      }
  });
}
function processFile() {
  console.log("Reading buffer")
   openFile().then(function (bin) {
     monoCounter = bin;
      //Increment
      inc(monoCounter);
      console.log(monoCounter);
      monoCounter = saveMonoCounter(monoCounter);
      return monoCounter;
  }).catch((err) => {
    monoCounter = Buffer.alloc(128);
    saveMonoCounter(Buffer.alloc(128));
  });

}

0 个答案:

没有答案