我需要检查文件/(自定义)模块js是否存在于某个路径下.我尝试过
var m = require('/home/test_node_project/per');
但是当路径中没有per.js时会抛出错误.我想检查
fs文件是否存在但我不想添加'.js'后缀,如果可以检查没有它.如果模块存在且是否存在要加载,如何检入节点?
Che*_*hev 74
Require是一个同步操作,因此您可以将其包装在try/catch中.
try {
var m = require('/home/test_node_project/per');
// do stuff
} catch (ex) {
handleErr(ex);
}
Run Code Online (Sandbox Code Playgroud)
Lou*_*uis 39
您可以尝试加载它,然后捕获它无法加载时生成的异常:
try {
var foo = require("foo");
}
catch (e) {
if (e instanceof Error && e.code === "MODULE_NOT_FOUND")
console.log("Can't load foo!");
else
throw e;
}
Run Code Online (Sandbox Code Playgroud)
您应该检查您获得的异常,以防它不仅仅是一个加载问题而且还有其他问题.避免误报和所有这些.
joe*_*dle 11
可以检查模块是否存在,而不实际加载它:
function moduleIsAvailable (path) {
try {
require.resolve(path);
return true;
} catch (e) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
文档:
require.resolve(request [,options])
使用内部的require()机制来查找模块的位置,而不是加载模块,只需返回已解析的文件名.
注意:像这样的运行时检查适用于Node应用程序,但它们不适用于browserify,WebPack和React Native等捆绑程序.
小智 5
您可以使用方法检查是否存在文件夹:
var fs = require('fs');
if (fs.existsSync(path)) {
// Do something
}
// Or
fs.exists(path, function(exists) {
if (exists) {
// Do something
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36768 次 |
| 最近记录: |