节点 js 中带有 fs 的未处理 'error' 事件

Unhandled 'error' event with fs in node js

我试图用文件系统替换图像数据,但我找不到什么是 mistake.how 我可以解决吗

这是代码

fs.readFile(background, function (err, data) {

        fs.writeFile(backgroundImage, backgroundimageBuffer.data, function (err) {

            im.resize({
                srcPath:backgroundImage,
                dstPath: background,
                width: backgroundDimensions.width,
                height: backgroundDimensions.height
            }, function(err, stdout, stderr){
                 if(err) throw err;
                console.log('resized image to fit within ' + backgroundDimensions.width + ' and ' + backgroundDimensions.height);
            });

            console.log("success");
        });
    });

错误

events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: spawn convert ENOENT
    at exports._errnoException (util.js:874:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:178:32)
    at onErrorNT (internal/child_process.js:344:16)

请确保变量background中的文件存在,并且变量backgroundImage中的文件在被im处理之前已成功写入文件系统。

似乎 im 正在生成子进程,但无法找到源文件。

此外,我建议使用下面的代码记录特定的文件处理错误

fs.readFile(background, function (err, data) {
    if(err){
      //this will log specific error to file
      return console.dir(err);
    }
    console.log('background file read');
    fs.writeFile(backgroundImage, backgroundimageBuffer.data, function (err) {
    if(err){
      //this will log specific error to file
      return console.dir(err);
    }
        console.log('backgroundImage file written');
        im.resize({
            srcPath:backgroundImage,
            dstPath: background,
            width: backgroundDimensions.width,
            height: backgroundDimensions.height
        }, function(err, stdout, stderr){
             if(err) {console.log('resized error');console.dir(err); throw err;}
            console.log('resized image to fit within ' + backgroundDimensions.width + ' and ' + backgroundDimensions.height);
        });

        console.log("success");
    });
});