有错误处理的外部扭曲函数
Warp function outside with error handling
我有节点应用程序,用户可以提供自己的功能,并根据用户给出的URL路径调用此函数,在错误的情况下,请求不会停止,所以我想以某种方式在调用者(如果有的话)中获得错误停止响应,在这种情况下记录要做什么?
不要说这是用户提供的函数,以防我们在目录中有文件这很好
delete: function (req,res,Path) {
var fileRelPath = 'C://'+ Path;
fs.unlinkSync(Path);
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end("File was deleted");
},
我从其他模块调用这个函数来调用函数
plugin[fnName](req, res, Path);
如果文件不存在,我得到了错误,进程调用没有停止…我是否应该在上面的调用代码之后检查res.end()是否被调用,如果不是明确地结束它,如果是,如何检查它是否结束。
我指的是像
这样的东西plugin[fnName](req, res, Path);
if(res.end was not invoked)
res.end("error occurred" )
maybe to provide additional data somehow about the err ..
您可以尝试以下操作。但是函数必须是同步的,就像您提供的示例一样。否则try..catch
将无法工作。
var error;
try{
plugin[fnName](req, res, Path);
}
catch(e){
error = e
}
if(!res.headerSent){
res.send(error);
}
对于异步操作,你必须重写你的函数在节点回调风格:
deleteAsync: function (req,res,Path,done) {
var fileRelPath = 'C://'+ Path;
fs.unlink(Path, function(err){
if(err)
return done(err)
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end("File was deleted");
});
},
,然后像这样调用它们:
plugin[fnNameAsync](req, res, Path,function(err){
if(err)
res.send(err)
});
相关文章:
- 访问函数外部的变量
- appendChild在函数外部工作,但在函数内部不工作
- 使用在函数外部声明的变量的 Javascript 返回值 + undefined
- JavaScript未定义的函数外部JavaScript文件
- 没有在函数外部分配全局变量
- 在挖空中引用对象构造函数外部视图模型的属性
- 访问函数外部的变量
- JS:从函数外部调用变量
- 在函数外部的 Angularjs 中访问 $http.get 的结果
- JQuery 更改函数外部的变量值
- 函数外部的 clearTimeout() 无法正常工作
- Javascript - 无法获取函数来设置要在函数外部使用的全局变量
- 如何设置 var self = this;从函数外部
- 在 JavaScript 中维护函数外部变量的值
- 为什么匿名函数中的私有变量可以从 javascript 中的函数外部访问
- 如何在函数外部获取变量的值
- 如何在函数外部访问 Javascript 变量值
- 节点.js在函数外部获取 MySQL 的结果
- 如何使用 $http.get 每 3 秒发出一个新请求并在函数外部获取数据
- 在 Phonegap DB 函数中返回函数外部的变量