admin管理员组

文章数量:1023102

I was reading some code of a project to learn node.js then I found this line (debug = require('debug')('api:server')) which is enclosed in brackets. As I'm new to programming and when I don't know something I just search it on the web, but I couldn't find an answer for this one. If you are going to tell me to search on the web more aggressively then please tell me HOW too.

I was reading some code of a project to learn node.js then I found this line (debug = require('debug')('api:server')) which is enclosed in brackets. As I'm new to programming and when I don't know something I just search it on the web, but I couldn't find an answer for this one. If you are going to tell me to search on the web more aggressively then please tell me HOW too.

Share Improve this question asked Jan 23, 2020 at 5:53 Sukhchain SinghSukhchain Singh 831 silver badge6 bronze badges 1
  • I would remend that you read the node.js docs: nodejs/en/docs – Chris Herbst Commented Jan 23, 2020 at 6:07
Add a ment  | 

1 Answer 1

Reset to default 5

require returns the exports of some other module. Here, since debug is being passed into require, the debug module is being required. What this module does is:

debug exposes a function; simply pass this function the name of your module, and it will return a decorated version of console.error for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole.

So

const debug = require('debug')('api:server');

where require('debug') resolves to a function, is like:

const debug = deccorateModule('api:server');

where decorateModule carries out the functionality described above. In this case, require acts as a higher-order function: a function which returns a function. (You may likely have a module named api:server)

This results in the debug variable holding the decorated version of console.error.

I was reading some code of a project to learn node.js then I found this line (debug = require('debug')('api:server')) which is enclosed in brackets. As I'm new to programming and when I don't know something I just search it on the web, but I couldn't find an answer for this one. If you are going to tell me to search on the web more aggressively then please tell me HOW too.

I was reading some code of a project to learn node.js then I found this line (debug = require('debug')('api:server')) which is enclosed in brackets. As I'm new to programming and when I don't know something I just search it on the web, but I couldn't find an answer for this one. If you are going to tell me to search on the web more aggressively then please tell me HOW too.

Share Improve this question asked Jan 23, 2020 at 5:53 Sukhchain SinghSukhchain Singh 831 silver badge6 bronze badges 1
  • I would remend that you read the node.js docs: nodejs/en/docs – Chris Herbst Commented Jan 23, 2020 at 6:07
Add a ment  | 

1 Answer 1

Reset to default 5

require returns the exports of some other module. Here, since debug is being passed into require, the debug module is being required. What this module does is:

debug exposes a function; simply pass this function the name of your module, and it will return a decorated version of console.error for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole.

So

const debug = require('debug')('api:server');

where require('debug') resolves to a function, is like:

const debug = deccorateModule('api:server');

where decorateModule carries out the functionality described above. In this case, require acts as a higher-order function: a function which returns a function. (You may likely have a module named api:server)

This results in the debug variable holding the decorated version of console.error.

本文标签: javascriptwhat does it mean by quotdebugrequire(39debug39)(39apiserver39)quotStack Overflow