You can export functions and values from a module by either using module.exports: module . exports = { value1 , function1 } or by using exports: exports . value1 = value1 exports . function1 = function1 So what's the difference? Exporting values with just the exports keyword is a quick way to export values from a module. You can use this keyword at the top or bottom, and all it does is populate the module.exports object. But if you're using exports in a file, stick to using it throughout that file. Using module.exports is a way of explicitly specifying a module's exports. And this should ideally only exist once in a file. If it exists twice, the second declaration reassigns the module.exports property, and the module only exports what the second declaration states. So as a solution to the previous code, you either export like this: // ... exports . value1 = value1 // ... exports . function1 = function1 ...