节点fs.unlink:错误对象在不同的​​计算机上是不同的

时间:2017-02-16 20:53:02

标签: node.js fs unlink

如果我错过了一个类似的问题,我道歉 - 我搜索了网站,找不到任何东西。

我的代码看起来像这样(在宣传了fs.unlink之后):

return unlinkAsync(file)
    .catch((err) => {
        if (err.code === 'ENOENT') {
            // Not a concern - file didn't exist, and that's ok
        } else {
            // Unexpected - propagate it up
            throw err;
        }
    });

问题:在我的机器上(OSX Sierra,节点5.9.1)err.code存在,并且在没有要删除的文件时正确处理。 但是,在另一台机器上 - 相同的操作系统和版本的Node - err.code 不存在 - 我们看到一个名为'cause'的属性,它有一个'代码'属性,但没有err.code。

我搜索了节点源代码(只编码节点一个月,但我认为我没有错过任何东西),除了e.code的期望之外找不到任何东西。

非常感谢任何建议或指导!

提前致谢! 约翰

1 个答案:

答案 0 :(得分:0)

最终,它在另一台开发机器上发现了旧版本的Bluebird(1.2.4)(感谢@mscdex!) - 最新版本(3.4.7)提供了err.code,旧版本没有。

然而,在更深层次上发生这种情况是因为我忽略了更新我们的package.json以包含我期望的Bluebird版本 - 经验教训。

谢谢!