简体   繁体   中英

TypeError: Object is not a function at Object.<anonymous> when constructing Javascript w/ new

I've put together a little code in one file, which is below:

var exports = Symphonize;

function Symphonize(generation_specification) {
    this.generate_spec = function(){
        return generation_specification;
    }
}

When I start another JavaScript file in the same project and require the code like so:

var symphonize = require('../bin/symphonize');
var Symp = new symphonize({"test":"test1"});

It throws the error:

/Users/adron/Codez/symphonize/tests/symphonize.js:8

var Symp = new symphonize({"test":"test1"});

  ^ TypeError: object is not a function at Object.<anonymous> 

Is there another way I should be constructing this? I just want the "symphonize" code to require a simple object (an object of configuration that will be JSON) before any functions on that code are called.

When setting the exports something you must do module.exports = Something. You should do something like :

module.exports = Symphonize;

If you had Symphonize as a property on the exports module.exports is not needed

exports.Symphonize = Symphonize;

Use it in a file.

var Symphonize = require('../bin/symphonize').Symphonize


Also var exports is kind of ambiguous statement in Node.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM