jgranstrom / gonode Goto Github PK
View Code? Open in Web Editor NEWgonode introduces a way to combine the asynchronous nature of node with the simplicity of concurrency in Go.
License: MIT License
gonode introduces a way to combine the asynchronous nature of node with the simplicity of concurrency in Go.
License: MIT License
I've been using this package with success but lately found an issue when I execute a command that will return a large json.
The issue appears to be that node is chunking the std out data, but each chunk is assumed to be a complete command response (or multiple command responses).
I'll attach a sample fix that works for me - essentially assuming that if data doesn't end with a newline we're getting an incomplete chunk of data, so keep appending and then process once we have a data chunk that is on a command response boundary
Sample fix in gonode.js:
// Receive data from go-module
function handleStdout(go, data) {
go.stdoutData += data;
// Response may be several command responses separated by new lines
var dataSplit = go.stdoutData.toString().split("\n");
if (dataSplit[dataSplit.length-1].length === 0) {
// Data ended on \n so assume we have a complete command output (or complete set of cmmand outputs),
// process the full stdout data
dataSplit.forEach(function(resp) {
// Discard empty lines
if(resp.length > 0) {
// Parse each command response with a event-loop in between to avoid blocking
process.nextTick(function(){parseResponse(go, resp)});
}
});
// Reset stdoutData
go.stdoutData = '';
}
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.