node.js - NodeJs 中的这一行是什么意思?

标签 node.js

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

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

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

最佳答案

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

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

如果相关模块返回一个函数,那么实现就很容易。在调试和弃用的情况下,它返回一个返回函数的函数:

// 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"

关于node.js - NodeJs 中的这一行是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30836648/

相关文章:

node.js - 在 node.js 中,如果没有收到来自 http 请求的响应,你怎么知道?

node.js - Mongoose 没有重新创建索引集合被删除

node.js - NodeMailer 未定义收件人

javascript - Webpack 正在向捆绑文件添加额外的代码(导致包含后抛出错误)

javascript - ES6 的 Visual Studio 任务运行程序错误

javascript - Backbone save() 响应成功

javascript - 如何在 Protractor Cucumber 框架中使用断点进行调试

javascript - cmd中的 Node js 'console'错误

javascript - Node.js Addon 需要多次新实例

javascript - Node JS 写入响应