我想知道这些需要NodeJs中的行是什么意思。
var debug = require('debug')('morgan')
var deprecate = require('depd')('morgan')
我正在浏览NodeJs中的index.js
morgan
个包。通常require
只有一个参数(包)。
答案 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"