我有一个应用程序,我需要一个可能可用或不可用的文件。如果文件不可用,我需要检查另一个文件。第三个选项是默认选项。到目前为止我有这个
const file = require('./locales/${test1}') || require('./locales/${test2}') || require('./locales/default')
但是它给了我一个错误,说无法找到模块。我该如何做到最佳?
我确实尝试过https://www.npmjs.com/package/node-require-fallback但是,尽管我的节点版本没问题,但它似乎无法正常工作
const messages = require('./ locales / $ {test1}')运行良好,但
const messages = requireIfExists('。/ locales / $ {test1}','。/ locales / $ {test2}')FAILS
答案 0 :(得分:0)
在普通节点应用中,您可以使用try-catch块:
var module;
try {
module = require(`./locales/${test1}`);
} catch(error) {
// Do something as a fallback. For example:
module = require('./locales/default');
}
}
答案 1 :(得分:0)
使用try / except,您可以实现自己复制requireIfExists
的功能。
function requireIfExists(...modules) {
for (let module of modules) {
try {
return require(module);
} catch (error) {
// pass and try next file
}
}
throw('None of the provided modules exist.')
}
另外,请确保在使用模板字符串时使用`字符而不是引号。