Last Sync: 2022-08-01 19:30:05

This commit is contained in:
tactonbishop 2022-08-01 19:30:05 +01:00
parent f7311789a7
commit d6bd380bc2
2 changed files with 13 additions and 46 deletions

View file

@ -35,4 +35,4 @@ You will want the swap to be activated every time the OS boots so add the follow
## Create a swap file
// TODO: Add info
// TODO: Add info here

View file

@ -6,9 +6,9 @@ tags:
- node-modules
---
# Modules
>
> Modules are small files where we define our variables and functions. Values defined in modules are scoped to that specific module, constituting a unique name space. This avoids name clashes in large programs.
> Modules are partitioned files where we define our variables and functions. Values defined in modules are scoped to that specific module, constituting a unique name space. This avoids name clashes in large programs.
* Every file in a Node application is considered a module.
@ -20,15 +20,13 @@ tags:
Node keeps an internal record of the properties of a module. To see this we can log the property `module` to the console.
````js
```js
// index.js
console.log(module)
````
```
This gives us:
````json
```plaintext
Module {
 id: '.',
 path: '/home/thomas/repos/node-learning',
@ -44,8 +42,7 @@ Module {
   '/node_modules'
 ]
}
````
```
## Exports
* Whenever we export a property or method from a module we are directly targeting the `exports` property of the module object.
@ -131,61 +128,31 @@ Here the thing exported could be a composite function or an object that basicall
*Export a composite single function*
````js
```js
module.exports = () => {
foo() {...}
bar() {...}
}
````
```
*Export an object*
````js
```js
module.exports = {
foo : () => {...},
bar: () => {...}
}
````
```
**Both of these structures would be referred to in the same way when importing and using them**
Or you could export an actual class as the default. This is practically the same as the two above other than that you would have to use `new` to initiate an instance of the class.
````js
```js
export default class {
foo() {}
bar() {}
}
````
## Built-in modules
Node has numerous built-in methods that provide helpful utility methods:
* [File system module](File%20system%20module.md)
* [Events module](Events%20module.md)
## Structure of Node module methods
Every method belonging to the in-built modules of Node has a callback structure: a callback function of which the first argument is an error-handler and the second is the (typically asynchronous) returned value.
For example
````js
fs.readdir('./', function(err, files) {
if (err) {
console.error(err)
} else {
console.log(files)
}
})
// ['files', 'that', 'were', 'returned']
````
```