ButterCMS JS client
Documentation
For a comprehensive list of examples, check out the API documentation.
Installation
Requires node.js version 4 or greater.
npm install buttercms --save
Butter can also be included directly in HTML:
<script src="https://cdnjs.buttercms.com/buttercms-1.1.1.min.js"></script>
Overview
Every resource is accessed via your butter instance:
var butter = require('buttercms')('api_token_567abe');
Using ES6:
import Butter from 'buttercms';
const butter = Butter('api_token_567abe');
Using CDN:
<script>
var butter = Butter('api_token_567abe');
</script>
Every resource method returns a promise:
// Get blog posts
butter.post.list({page: 1, page_size: 10}).then(function(response) {
console.log(response)
})
Pages
Where you see params it is a plain js object, e.g. {page: 1}
. For a list of params see the API documentation
- page
retrieve(page_type, page_slug[, params])
list(page_type[, params])
// Get page
butter.page.retrieve('casestudy', 'acme-co').then(function(resp) {
console.log(resp)
});
Content fields
- content
retrieve(keys)
Localization
Setup locales in the ButterCMS dashboard and fetch localized content using the locale option:
// Get FAQ
butter.content.retrieve(["faq"], {locale: 'es'}).then(function(resp) {
console.log(resp)
});
Test mode
Test mode can be used to setup a staging website for previewing content fields or for testing content during local development. To fetch content from test mode add an additional argument, true
, to the package initialization:
var butter = require('buttercms')('your butter API token', true);
Or use an environment variable:
var butter = require('buttercms')('your butter API token', process.env.BUTTER_TEST_MODE);
Blog Engine
- post
retrieve(slug[, params])
list([params])
search(query[, params])
- category
retrieve(slug[, params])
list([params])
- tag
retrieve(slug[, params])
list([params])
- author
retrieve(slug[, params])
list([params])
- feed
retrieve(type[, params])
See our node app for a full example.
Timeouts
The default timeout threshold is 3000ms but you can change it:
var butter = require('buttercms')('your butter API token', false, 5000);
Documentation
Documentation is available at https://buttercms.com/docs/api/node
Other
View NodeJS Blog engine and Full CMS for other examples of using ButterCMS with NodeJS.