Node.js “require” function and parameters

后端 未结 2 1333
耶瑟儿~
耶瑟儿~ 2020-12-12 14:32

When I do:

lib = require(\'lib.js\')(app)

is app actually geting passed in?

in lib.js:

exports = modul         


        
相关标签:
2条回答
  • 2020-12-12 14:42

    You may have an undefined value that you're trying to pass in.

    Take for instance, requires.js:

    module.exports = exports = function() {
       console.log('arguments: %j\n', arguments);
    };
    

    When you call it correctly, it works:

    node
    > var requires = require('./requires')(0,1,2,3,4,5);
    arguments: {"0":0,"1":1,"2":2,"3":3,"4":4,"5":5}
    

    If you have a syntax error, it fails:

    > var requires = require('./requires')(0,);
    ... var requires = require('./requires')(0,2);
    ... 
    

    If you have an undefined object, it doesn't work:

    > var requires = require('./requires')(0, undefined);
    arguments: {"0":0}
    

    So, I'd first check to see that your object is defined properly (and spelled properly when you pass it in), then check that you don't have syntax errors.

    0 讨论(0)
  • 2020-12-12 14:53

    When you call lib = require("lib.js")(params)

    You're actually calling lib.js with one parameter containing two properties name app and param2

    You either want

    // somefile
    require("lib.js")(params);
    // lib.js
    module.exports = function(options) {
      var app = options.app;
      var param2 = options.param2;
    };
    

    or

    // somefile
    require("lib.js")(app, param2)
    // lib.js
    module.exports = function(app, param2) { }
    
    0 讨论(0)
提交回复
热议问题