microcule
microcule copied to clipboard
Using nodejs microcule.plugins.spawn doesn't close connection
The expressjs examples from https://github.com/Stackvana/microcule/tree/master/examples, don't close the connection. Only the javascript code example works as there is a res.end() in it.
This is on OS X 10.12.4 with Node v6.9.5
Can you be more specific which example you are having issues with?
There should be a mechanism in place which ends the request when the script completes. It's possible I failed to port over this functionality from hook.io, but I know we did create a way for this to work.
Tried these. Only the JS example in express-multi-language.js works
https://github.com/Stackvana/microcule/blob/master/examples/express-multi-language.js https://github.com/Stackvana/microcule/blob/master/examples/express-python.js https://github.com/Stackvana/microcule/blob/master/examples/express-any-binary.js
I think I got it, one moment.
@mphuie - I think I got it. This makes sense. I must have forgotten to update the examples to use the new API semantics.
If you look at https://github.com/Stackvana/microcule/blob/master/examples/express-python.js#L19, you'll see it's now updated and should be working.
Basically, if the response isn't closed inside of a script, we need to have a middleware at the end of the server to catch and close the response. This will only fire if the script itself doesn't close the response.
I'll take the time to update the other examples and see about adding documentation for explicitly closing the request inside non-JS services.
Does that work for you?
Yep, that works, doesn't that mean the server will return a 200 regardless of exit code?
I think right now, it's up to the developer to determine which HTTP status will be sent back into the response. It would probably be correct for us to provide a configurable mapping of HTTP response codes to the exit codes. I believe hook.io is doing this already to some extent.
If you could post some example code or scenarios with what you would expect to see as a result, I would be glad to review and see if we can incorporate it into the project.
Thank you for your feedback.