node package manager


prismic-nodejs support for NodeJS

npm version Dependency Status

This is a set of helpers to use in a NodeJS application. Currently it only contains a helper to create a preview route. If you're starting from scratch, our NodeJS SDK is a good base.


npm install prismic-nodejs --save


var prismic = require('prismic-nodejs');

The Prismic object is extended from the Javascript Kit, so any attribute of the official kit, for example Predicates, is also available in the object exposed by express-prismic.

It is recommended to create an api() method that will fetch the Api object for your repository, with the correct parameters:

// This is the configuration for 
var ENDPOINT = "http://<your-repository>";
var ACCESSTOKEN = null; // Only if your API is private 
var LINKRESOLVER = function(doc) { // Describe your reverse routing here 
  return '/' + doc.type + '/' +;
// This method will return a Promise of Api object 
function api(req, res) {
  res.locals.ctx = { // So we can use this information in the views 
    endpoint: ENDPOINT,
    linkResolver: LINKRESOLVER
  return Prismic.api(ENDPOINT, {
    accessToken: ACCESSTOKEN,
    req: req

You can then call it in your routes if you need to query your repository:

app.route('/').get(function(req, res) {
  api(req).then(function (api) {
    api.getByUID('page', 'get-started', function (err, document) {
      res.render('index-prismic', {
        document: document
  }).catch(function(err) {
    // Don't forget error management 
    res.status(500).send("Error 500: " + err.message);


You can preview any document including drafts in your production site, securely. All you have to do is include this route:

app.route('/preview').get(function(req, res) {
  api(req).then(function(api) {
    return Prismic.preview(api, configuration.linkResolver, req, res);
  }).catch(function(err) {
    handleError(err, req, res);


  • Configure the URL to that preview route in the settings of your repository
  • Make sure that the Prismic Toolbar is included in your views