communitypackages:inject-data

v2.3.2Published 6 months ago

communitypackages: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.

Installation

meteor add communitypackages: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.

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

Get Data

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

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

Disable Automatic Injection

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

1InjectData._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.