在任何地方都找不到关于这个的文章。我基本上希望从程序中捕获“找不到模块”错误,并可以选择要求安装它,但即使使用try/catch语句,我似乎也无法捕获任何错误。这可能吗?我哪儿都没见过。
例如:
try {
var express = require('express');
} catch (err){
console.log("Express is not installed.");
//proceed to ask if they would like to install, or quit.
//command to run npm install
}
我想这可以通过一个独立的.js启动文件来完成,而无需任何第三方的要求,只需使用fs
检查node\u模块
,然后从子进程运行npm install
,然后与另一个子进程一起运行node app
。但感觉在单个app.js文件中执行此操作会更容易
这对我来说很好,因为你有它。您确定在您上方的文件系统中没有需要查找的node\u modules/express
文件夹吗?尝试这样做是为了清楚发生了什么:
try {
var express = require('express');
console.log("Express required with no problems", express);
} catch (err){
console.log("Express is not installed.");
//proceed to ask if they would like to install, or quit.
//command to run npm install
}
为确保正确,请确保仅捕获给定模块的模块未找到错误:
try {
var express = require('express');
} catch (e) {
if (e.code !== 'MODULE_NOT_FOUND') {
// Re-throw not "Module not found" errors
throw e;
}
if (e.message.indexOf('\'express\'') === -1) {
// Re-throw not found errors for other modules
throw e;
}
}
问题内容: 假设我需要一个模块并执行以下操作: 然后,我要拿走模块b(即清理缓存)。我该怎么办? 原因是我想动态加载/删除或更新模块,而无需重新启动节点服务器。任何想法? -------更多--------根据删除require.cache的建议,它仍然不起作用… 但是,当我呼叫b时,它仍然存在!它仍然可以访问。除非我这样做: 不知道这是否是处理该问题的好方法。因为如果以后再修改b.js,我又需要
我正在从可能被压缩的服务器下载内容,所以我使用了我在不同地方找到的样板: 问题是,如果HTTPS请求因网络错误而失败,我有时会引发以下异常: 该“错误”事件处理程序未捕获异常。那么我如何捕获它,以便能够正确地清理文件并知道如何重试?
使用命令安装模块后,我可以通过在node.js命令行中导入模块,但当我执行以运行代码时,遇到MODULE_NOT_FOUND错误
问题内容: 我将Require.js与Angular.js结合使用。 一些控制器需要巨大的外部依赖关系,而其他控制器则不需要,例如,需要Angular UI Codemirror 。这至少是135 kb,至少: 我不想每次我的页面加载时都只包含指令和Codemirror lib只是为了使Angular开心。 这就是为什么我现在仅在遇到路线时才加载控制器,就像这里所做的那样。 但是,当我需要类似的东
我正在执行多个ajax调用,我想在显示表单之前完成所有这些调用。如果有错误,我想停止处理,只显示遇到的第一个错误。我谷歌了很多文章,包括StackOverflow上的文章,这些文章展示了如何链接当时的语句。但是似乎我必须给每个语句都附加一个捕获,否则只捕获最后一个语句中的错误。在本例中,Lookup是一个返回promise的异步调用,ShowError处理错误: 假设至少有一个错误,是否有任何方法
问题内容: 我陷入了本机项目中的一个问题。我试图做一个通用的需求文件,在其中导出所有模块。之后,我只需要我的“ require.js”文件,以避免在每个文件中都这样调用require(’../../ ModuleName’)。 我有4个文件: require.js: 在index.ios.js中(他的Home和MyView模块正确获取了importet) Home.js(模块MyView没有获得重