Analytics for Node.js Migration Guide
If you’re using the classic version of Analytics Node.js (named analytics-node on npm), upgrade to the latest version of Analytics Node.js (named @segment/analytics-node on npm).
- 
    Change the named imports. 
 Before:import Analytics from 'analytics-node'After: import { Analytics } from '@segment/analytics-node'
- 
    Change instantiation to have an object as the first argument. 
 Before:var analytics = new Analytics('YOUR_WRITE_KEY');After: const analytics = new Analytics({ writeKey: '<YOUR_WRITE_KEY>' })
- 
    Change flushing to graceful shutdown. 
 Before:await analytics.flush(function(err, batch) { console.log('Flushed, and now this program can exit!'); });After: await analytics.closeAndFlush()
Key differences between the classic and updated version
- 
    The callback call signature changed. 
 Before:(err, batch) => voidAfter: (err, ctx) => void
- 
    The enablesetting (for disabling analytics during tests) changed todisable.enable: falsechanged todisable: true.
Removals
The updated Analytics Node.js removed these configuration options:
- errorHandler(see the docs on error handling for more information)
The updated Analytics Node.js library removed undocumented behavior around track properties
Before:
analytics.track({
 ...
 event: 'Ultimate Played',
 myProp: 'abc'
})
After:
analytics.track({
 ...
 event: 'Ultimate Played',
 properties:  {
   myProp: 'abc'
 }
})
This page was last modified: 21 Feb 2024
Need support?
Questions? Problems? Need more info? Contact Segment Support for assistance!