Guide to creating and downloading a text file with Meteor

Is there a simple way to create a text file in Meteor on the server side and download it as a .txt file?

// Server Side
if (Meteor.isServer) {
  Meteor.methods({
    'scan-db': function () {
       // Scanning the database for corrupted data
       var allEntries = Jobs.find().fetch();
       var report = "";
       for ( let i = 0; i < allEntries.length ; i ++ ) {
         if ( validate(allEntries[i]) == false ) {
           report = report + allEntries[i].entryNumber + " has a problem" + "\n";
         // Using \n for line breaks in windows
         }
       return report; // A long string containing the report

  })
}


// Client Side
if (Meteor.isClient) {
  Meteor.call("scan-db", function(err, res) {
     if (res) {
        downloadFile(res);
     }
  })
}

I would like to be able to save my result as a text file. Is there an easy method to achieve this? I attempted to use meteorhacks:picker, but it seems that the package is not functioning properly or Picker returned undefined even after importing it using

import { Picker } from 'meteor/meteorhacks:picker';

Answer №1

To send it back using a Meteor method, one simple approach is to return the content as text and then have the client generate the file.

One way to do this is by creating a Blob and utilizing a tool like FileSaver to kick off the download process. If you prefer not to rely on a library, a common workaround involves generating an html link for the blob file, adding it to the DOM, and simulating a click event.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Troubleshooting issues with the 'date' input type feature on mobile devices

When I use the following code: <input type='month' ng-readonly='vm.isReadonly' required min="{{vm.threeMonthsAgo}}" max='{{vm.oneMonthAhead}}'/> I am experiencing some difficulties on mobile devices that do not occur o ...

Altering webpage content through the use of Ajax

I need a solution for dynamically updating web page content using JavaScript AJAX. One idea I had was to store different div layouts in separate files, like so: BasicDiv.div: <div> <p>Some Text</p> <button> A Button </ ...

Getting js.map Files to Function Properly with UMD Modules

I am experiencing an issue with debugging TypeScript files in Chrome and Firefox. Specifically, when trying to debug the MapModuleTest.ts file, the debugger seems to be out of sync with the actual JavaScript code by two lines. This discrepancy makes settin ...

Choose an option using jQuery with the ability to navigate to the previous or next

I encountered a bug when I tried to click the next or previous button. Below is the HTML code snippet: $("#nextPage").click(function() { $('#pagination option:selected').next().attr('selected', 'selected'); console.log( ...

What is the best method to launch a new browser window using JavaScript?

I am currently working on automating the UI testing for my application. There are certain scenarios where I need the test script to close the current browser window and open a new one for the next test. However, I am having trouble figuring out how to achi ...

Stopping multiple bindings in Knockout.jsIn Knockout.js, preventing multiple bindings

My view model is structured like this : function ImageViewModel() { var self = this; self.totalRecordCount = ko.observable(); self.currentRecordCount = ko.observable(); self.images = ko.observableArray(); // fetching all ava ...

Manipulating the .innerHTML property allows for selectively replacing sections

In my JavaScript code, I am trying to display a video along with a countdown timer. Once the countdown finishes, it should switch the content of the div to show a question. Below is my current implementation: <script type="text/javascript"> ...

Expo + tRPC: Oops! Looks like the application context couldn't be retrieved. Don't forget to wrap your App inside the `withTRPC` HoC for

I'm currently working on a straightforward tRPC server setup: // server.ts import { initTRPC } from "@trpc/server"; import { z } from "zod"; const t = initTRPC.create(); export const appRouter = t.router({ greeting: t.procedu ...

Encountering an obscure issue when using Discord.js v14 after attempting to cancel and resubmit a modal

I'm currently working on a Discord bot using modals in Discord.js v14. These modals appear after the user clicks a button, and an .awaitModalSubmit() collector is triggered to handle one modal submission interaction by applying certain logic. The .awa ...

Leveraging React Hooks' useEffect to trigger a prop callback function defined with useCallback

Currently, I am working on developing a versatile infinite scrolling feature using React Hooks along with the ResearchGate React Intersection Observer. The main concept revolves around a parent passing down a mapped JSX array of data and a callback functio ...

The IE9 confirmation dialog fails to pause for user response, resulting in automatic postback before user input is received

Behind the Scenes btnNext.Attributes.Add("onclick", " return Verification(this,'" + GetLocalResourceObject("message").ToString() + "'); ") .ASPX Page [Within javascript tags] function Verification(source, message) { var dialog = '< ...

Can you please elaborate on CRUD operations in Node.js by providing examples to clarify?

Could you please provide a detailed explanation of CRUD operations in Node.js along with some examples? click here to view the image description ...

What's the process for creating a Java object in PHP and utilizing it in JavaScript?

I am looking to create an object on a PHP page and send it as a response through an AJAX call to be used as a JavaScript object on the response page. This type of object is what I need to generate and pass along. var areaChartData = { labels ...

I can't seem to get the post method to work properly for some unknown reason

Hello there, I am encountering an issue while trying to submit a form on my website using the post method. For some reason, it keeps returning a null value. However, when I send data not through the form but instead by reading axios, it works perfectly fin ...

What is the best method for retrieving a local value in Javascript?

Consider a scenario where there exists a variable named animationComplete (which is part of a 3rd-party library) and a function called happenAfterAnimation: An easy solution would involve the following code snippet: while(!animationComplete) { // Do n ...

Is there a way to retrieve the chosen selection from a select dropdown element using JavaScript?

As someone who is still learning JavaScript, I've come across a particular issue. Within a webpage, there is a select dropdown as shown below: <select id="selTipoRap" class="form-control" th:field="*{tipoRappresentante}&qu ...

Exploring nested object values in React Js through iteration

I have been searching extensively for a solution to no avail. I have an object created from fetched data with the following structure: { id: string, title: string, price: { currency: string, amount: number, }, ...

What method does the browser use to identify angularjs tags within HTML documents?

When using the AngularJS framework in HTML, we incorporate "ng" into HTML tags. However, how does the browser identify or recognize the HTML tags with "ng"? I am seeking the correct solution to this question. ...

Develop a JSON structure by retrieving nested documents using Firebase Firestore and Express

I'm currently working on developing an application using Express and Firebase Cloud Functions. I'm facing a challenge in creating a nested JSON structure based on the database schema specified below: https://i.sstatic.net/2vI8z.png Below is the ...

Tips for choosing a loaded element using the jQuery load() method

I am currently facing a challenge with the following (here is a snippet of code to illustrate): <div id="container"></div> <script type="text/javascript"> $('#container').load('content.html'); $('.eleme ...