Node.js object is not a function - module.exports


I have a module I created for a node.js app. The app also uses and I want to pass the object into the auction object when I create it.

This works when I do it outside of Node, but inside, I get the error 'object is not a function' - my guess is it has to do with the module.exports, but I'm sure what it would be.

Any suggestions would be awesome - thank you!


var Auction = function(socket) {      = [];
    this.timer     = null;
    this.socket    = socket;

Auction.prototype = {

    add: function(auction) {;

module.exports.Auction = Auction;


var  Auction          = require('./lib/auction');

var auctions = new Auction(socket);

Error: TypeError: object is not a function at Object.CALL_NON_FUNCTION_AS_CONSTRUCTOR (native)

3/27/2012 4:21:07 PM

Accepted Answer

You are exporting an object with 1 property Auction

When you required the module, you imported an object which looks like

  Auction: function(){...}// Auction function

So either export just the function:

module.exports = Auction;

or reference the property when you require the module:

var  Auction = require('./lib/auction').Auction;

By default, module.exports is an empty object : {}

You can replace exports with a function. This will export just that function.

Or you can export many functions, variables, objects, by assigning them to exports. This is what you have done in your question: assigned the function Auction to the property Auction of exports.

3/27/2012 4:31:20 PM

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow