Curly brackets (braces) in Node.js 'require' statement

AproposArmadillo picture AproposArmadillo · Jul 29, 2016 · Viewed 16.9k times · Source

I am trying to understand the difference between the two 'require' statements below.

Specifically, what is the purpose of the { }s wrapped around ipcMain?

const electron = require('electron')

const {ipcMain} = require('electron')

They both appear to assign the contents of the electron module, but they obviously function differently.

Can anyone shed some light?

Answer

alexi2 picture alexi2 · Jul 29, 2016

The second example uses destructuring.

This will call the specific variable (including functions) that are exported from the required module.

For example (functions.js):

module.exports = {
   func1,
   func2
}

is included in your file:

const { func1, func2 } = require('./functions')

Now you can call them individually,

func1()
func2()

as opposed to:

const Functions = require('./functions')

are called using dot notation:

Functions.func1()
Functions.func2()

Hope this helps.

You can read about destructuring here, it is a very useful part of ES6 and can be used with arrays as well as objects.