Code Monkey home page Code Monkey logo

meteor-inject-data's Introduction

staringatlights:inject-data

A way to inject data to the client with initial HTML. A continuation of meteorhacks:inject-data.

This is the package used by fast-render to push data to the client with the initial HTML.

Upgrading from 2.0.0

Due to changes to Meteor 1.6.1, the way Inject Data internally accumulates the data payload has changed. The payload was previously attached to the response object, which is now unavailable. It is now attached to the request.headers object (which is the only object that seems to persist between the server-renders sink.request object and WebAppInternals.registerBoilerplateDataCallback's request object, unfortunately). If you were calling InjectData methods directly (eg. pushData you must now pass in the request object instead of the response).

Installation

meteor add staringatlights:inject-data

Push Data

We need to use this package with a server side router. We've extended nodejs http.OutgoingMessage and provides an API like this.

Here is an example with picker.

Picker.route('/', function(params, req, res, next) {
	var ejsonData = { aa: 10 }
	InjectData.pushData(req, 'some-key', ejsonData)
	// make sure to move the routing forward.
	next()
})

Get Data

You can get data with the following API from the client.

InjectData.getData('some-key', function(data) {
	console.log(data)
})

Disable Automatic Injection

You may wish to manually inject the data payload if you are using SSR.

InjectData._disableInjection = true

Injection Location

By default, the injector will place the payload inside the <head> element. This is render blocking and intended to front-load the data for client-side rendering apps.

You can disable this functionality by setting InjectData.injectToHead = false. The payload will be placed before the closing </body> tag. Use this setting to deliver payloads after the initial render, e.g. SSR data hydration.

meteor-inject-data's People

Contributors

arunoda avatar abecks avatar benmgreene avatar elie222 avatar tomwasd avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.