How to stream to a zip using NodeJS and Browserify










0















I'm new to JavaScript / NodeJS so forgive me for what's likely a basic question. But I'm trying to understand something fundamental.



We've a project structured like so



  • Bottom layer is made up of a re-usable NodeJS SDK

  • This is being bundled by Browserify

  • The bundle is used with a local index.html (via JavaScript calls)

The current task I'm working on involves writing code in the SDK to



  • Read data from a http REST API

  • Format this data

  • Create a zip on disk

  • Write the formatted data to the zip

Then I need to write code in the index.html



  • To supply a path

  • Kick off the above steps to create a zip

As a starting point I've been playing with the standard NodeJS fs module. However when I browserify the code



import fs from 'fs';


translates fs to . There does seem to be a separate module browserify-fs that'll allow me to support fs. But this issue has made me question the approach I'm taking.



  • Is fs a good option to use for a browser?

  • How common is it for browser JavaScript to support streaming to zip? i.e. As opposed to downloading a pre-existing zip from a http server.

Appreciate this question is open ended. But I'm curious to hear what the community thinks.










share|improve this question

















  • 1





    Why do you have to use fs in the browser? Doesn't make sense. Doesn't the zip creation happen on the server?

    – mihai
    Nov 13 '18 at 21:56












  • That was my reaction. But there's an encryption requirement that means it can only occur on the customer's side.

    – Shane Gannon
    Nov 14 '18 at 14:10















0















I'm new to JavaScript / NodeJS so forgive me for what's likely a basic question. But I'm trying to understand something fundamental.



We've a project structured like so



  • Bottom layer is made up of a re-usable NodeJS SDK

  • This is being bundled by Browserify

  • The bundle is used with a local index.html (via JavaScript calls)

The current task I'm working on involves writing code in the SDK to



  • Read data from a http REST API

  • Format this data

  • Create a zip on disk

  • Write the formatted data to the zip

Then I need to write code in the index.html



  • To supply a path

  • Kick off the above steps to create a zip

As a starting point I've been playing with the standard NodeJS fs module. However when I browserify the code



import fs from 'fs';


translates fs to . There does seem to be a separate module browserify-fs that'll allow me to support fs. But this issue has made me question the approach I'm taking.



  • Is fs a good option to use for a browser?

  • How common is it for browser JavaScript to support streaming to zip? i.e. As opposed to downloading a pre-existing zip from a http server.

Appreciate this question is open ended. But I'm curious to hear what the community thinks.










share|improve this question

















  • 1





    Why do you have to use fs in the browser? Doesn't make sense. Doesn't the zip creation happen on the server?

    – mihai
    Nov 13 '18 at 21:56












  • That was my reaction. But there's an encryption requirement that means it can only occur on the customer's side.

    – Shane Gannon
    Nov 14 '18 at 14:10













0












0








0


1






I'm new to JavaScript / NodeJS so forgive me for what's likely a basic question. But I'm trying to understand something fundamental.



We've a project structured like so



  • Bottom layer is made up of a re-usable NodeJS SDK

  • This is being bundled by Browserify

  • The bundle is used with a local index.html (via JavaScript calls)

The current task I'm working on involves writing code in the SDK to



  • Read data from a http REST API

  • Format this data

  • Create a zip on disk

  • Write the formatted data to the zip

Then I need to write code in the index.html



  • To supply a path

  • Kick off the above steps to create a zip

As a starting point I've been playing with the standard NodeJS fs module. However when I browserify the code



import fs from 'fs';


translates fs to . There does seem to be a separate module browserify-fs that'll allow me to support fs. But this issue has made me question the approach I'm taking.



  • Is fs a good option to use for a browser?

  • How common is it for browser JavaScript to support streaming to zip? i.e. As opposed to downloading a pre-existing zip from a http server.

Appreciate this question is open ended. But I'm curious to hear what the community thinks.










share|improve this question














I'm new to JavaScript / NodeJS so forgive me for what's likely a basic question. But I'm trying to understand something fundamental.



We've a project structured like so



  • Bottom layer is made up of a re-usable NodeJS SDK

  • This is being bundled by Browserify

  • The bundle is used with a local index.html (via JavaScript calls)

The current task I'm working on involves writing code in the SDK to



  • Read data from a http REST API

  • Format this data

  • Create a zip on disk

  • Write the formatted data to the zip

Then I need to write code in the index.html



  • To supply a path

  • Kick off the above steps to create a zip

As a starting point I've been playing with the standard NodeJS fs module. However when I browserify the code



import fs from 'fs';


translates fs to . There does seem to be a separate module browserify-fs that'll allow me to support fs. But this issue has made me question the approach I'm taking.



  • Is fs a good option to use for a browser?

  • How common is it for browser JavaScript to support streaming to zip? i.e. As opposed to downloading a pre-existing zip from a http server.

Appreciate this question is open ended. But I'm curious to hear what the community thinks.







javascript node.js stream filesystems






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 13 '18 at 17:02









Shane GannonShane Gannon

1,18211629




1,18211629







  • 1





    Why do you have to use fs in the browser? Doesn't make sense. Doesn't the zip creation happen on the server?

    – mihai
    Nov 13 '18 at 21:56












  • That was my reaction. But there's an encryption requirement that means it can only occur on the customer's side.

    – Shane Gannon
    Nov 14 '18 at 14:10












  • 1





    Why do you have to use fs in the browser? Doesn't make sense. Doesn't the zip creation happen on the server?

    – mihai
    Nov 13 '18 at 21:56












  • That was my reaction. But there's an encryption requirement that means it can only occur on the customer's side.

    – Shane Gannon
    Nov 14 '18 at 14:10







1




1





Why do you have to use fs in the browser? Doesn't make sense. Doesn't the zip creation happen on the server?

– mihai
Nov 13 '18 at 21:56






Why do you have to use fs in the browser? Doesn't make sense. Doesn't the zip creation happen on the server?

– mihai
Nov 13 '18 at 21:56














That was my reaction. But there's an encryption requirement that means it can only occur on the customer's side.

– Shane Gannon
Nov 14 '18 at 14:10





That was my reaction. But there's an encryption requirement that means it can only occur on the customer's side.

– Shane Gannon
Nov 14 '18 at 14:10












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53286089%2fhow-to-stream-to-a-zip-using-nodejs-and-browserify%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53286089%2fhow-to-stream-to-a-zip-using-nodejs-and-browserify%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







這個網誌中的熱門文章

How to read a connectionString WITH PROVIDER in .NET Core?

Museum of Modern and Contemporary Art of Trento and Rovereto

In R, how to develop a multiplot heatmap.2 figure showing key labels successfully