NodeJ中的这一行是什么意思?

时间:2015-06-15 02:38:26

标签: node.js

我想知道这些需要NodeJs中的行是什么意思。

 var debug = require('debug')('morgan')
 var deprecate = require('depd')('morgan')

我正在浏览NodeJs中的index.js morgan个包。通常require只有一个参数(包)。

1 个答案:

答案 0 :(得分:2)

require返回包中定义的内容。在上面的例子中,它们是函数,因此第二个参数实际上是在调用函数。如果你把它分解出来,它会是这样的:

var debugFunctionFactory = require('debug');
var debug = debugFunctionFactory('morgan');
debug('this is a test debug command');

如果相关模块返回一个函数,则实现很容易。在debug和deprecate的情况下,它返回一个返回函数的函数:

// Module code:
module.export = function(customName) {
  return function(message) {
    console.log(customName + ': ' + message);
  };
};

// Your code:
var foo = require('module'); // => function
var bar = foo('foobar');     // => function
bar('baz');                  // "foobar: baz"

// More concisely:
var foo = require('module')('foobar');  // => function
foo('baz');                             // "foobar: baz"