Comments (5)
Hi
I'm currently working on a solution to your issue. I'll try to return a new "Request" object for each method invocation. That "Request" object will be passed to ConnectManager and will handle error events emitted by each request. So if all works as expected you'll have a errorHandler on returned request object you can use to catch only request specific errors.
Also I'll try to parametrize this solution in options passed to the client, so you can choose to use it or not. something like this
var options ={
//other options here
manageRequests:true
}
var client = new Client(options);
//just handle errors
client.get(.. params..).on('error', function(err){
//catch error here
console.error(err); });
//use request object returned by method
var request = client.get(... params ...);
request.on('error',function(err){
console.error(err);
};
//I'll probably add some properties to request object not just error handler
console.log(request.time);// or any other "awesome" properties ;)
from node-rest-client.
Solution seems very good! I'm waiting for it.
Thank you in advance!
from node-rest-client.
I know this would break existing code, but really you should follow the standard function(err,...) approach for callbacks.
Perhaps just add an option 'errInCallback' and if true (default = false), then callback is (err, data, response)
I'm researching rest clients instead of rolling my own and so far yours looks great apart from the error handling.
Perhaps I'll fork and have a stab myself in the meantime.
from node-rest-client.
Hi
first of all sorry for the delay but I've been quite busy at work lately, but finally I've a fix for bug #5. Solution is like the one I explained in previous messages but with one main difference: there's no need to declare any property on client options, now each method request returns a request object with specific request information and error handler.
You have the details on readme.md but here you have an example
var req=client.get(.. params..);
console.log('request options', req.options);
req.on('error',function(err){
console.log('request property on error object', err.request);
console.log('request options', err.request.options);
});
TimNZ I've tried to follow node.js standards for handling error events , with the advantage of no breaking any existing code and maintain backward compatibility, hope you like the solution.
Thank you all.
from node-rest-client.
@aacerox Thank you for the fix! It's appreciated!
from node-rest-client.
Related Issues (20)
- Vulernability in debug-2.2.0
- promise from http calls HOT 2
- TLS 1.2 Support HOT 1
- Support for retry HOT 1
- Cannot get examples to work HOT 2
- Handle JSON Hijacking prevention HOT 1
- xmlSerializer is not defined
- NPM Vulnerability HOT 2
- Problem behind a Proxy with Tunnel HOT 4
- Can I send a binary file with this?
- "node_modules\node-rest-client\lib\nrc-serializer-manager.js:122" HOT 1
- Result is not defined in nrc-parser-manager HOT 1
- Use a loop? HOT 1
- HTTPS: unable to verify the first certificate error HOT 2
- https encryption
- Content-Type header is case sensitive
- Cannot send multipart/form-data
- The git repository has been abandoned
- "Error: socket hang up" when using node-rest-client if follow-redirects Ver > 1.13.3 HOT 1
- Replace xml2js due to CVE-2023-0842
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-rest-client.