Require ,当模块不存在时如何进行回退

kee*_*rti 1 javascript require

我有一个应用程序,我需要一个可能可用也可能不可用的文件。如果文件不可用,我需要检查另一个文件。第三个选项将是默认值。到目前为止我有这个

const file = require('./locales/${test1}') || require('./locales/${test2}') || require('./locales/default')
Run Code Online (Sandbox Code Playgroud)

但它给我错误说找不到模块。我如何以最佳方式执行此操作?

我确实尝试过https://www.npmjs.com/package/node-require-fallback但它似乎不起作用,尽管我的节点版本没问题

const messages = require('./locales/${test1}') 效果很好,但是

const 消息 = requireIfExists('./locales/${test1}', './locales/${test2}') 失败

Dun*_*ker 5

在普通节点应用程序中,您可以使用 try-catch 块:

var module;

try {
  module = require(`./locales/${test1}`);

  } catch(error) {
    // Do something as a fallback. For example:

    module = require('./locales/default');
  }
}
Run Code Online (Sandbox Code Playgroud)