Skip to content Skip to sidebar Skip to footer

What's Right Way To Import A Module Javascript Node.js

I'm a little confused about how to import a module in my node project. I see two ways that are working, but what is the right way; or is there any any difference? I am referring to

Solution 1:

There is no difference in the result, both will work. The second is just unnecessarily verbose (which is largely harmless, but I for one wouldn't use ./../myModule.js). The modules documentation says:

A required module prefixed with '/' is an absolute path to the file. For example, require('/home/marco/foo.js') will load the file at /home/marco/foo.js.

A required module prefixed with './' is relative to the file calling require(). That is, circle.js must be in the same directory as foo.js for require('./circle') to find it.

Without a leading '/', './', or '../' to indicate a file, the module must either be a core module or is loaded from a node_modules folder.

Re your edit:

Also, I see some imports are done using the file extension, and other don't. What's the correct way?

That same documentation addresses this just above the earlier quotes:

If the exact filename is not found, then Node.js will attempt to load the required filename with the added extensions: .js, .json, and finally .node.

.js files are interpreted as JavaScript text files, and .json files are parsed as JSON text files. .node files are interpreted as compiled addon modules loaded with dlopen.

Post a Comment for "What's Right Way To Import A Module Javascript Node.js"