Check out my books on Amazon at https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62
Subscribe to my email list now at http://jauyeung.net/subscribe/
Like any kind of apps, JavaScript apps also have to be written well.
Otherwise, we run into all kinds of issues later on.
In this article, we’ll look at some best practices we should follow when writing Node apps.
Start All Projects with npm init
We should start will project with npm init
so that we get the package.json
file in our app project.
This will let us add our project’s metadata like the project name, version, and the required packages.
Setup .npmrc
We should add .npmrc
to add the URL for the Node packages repositories that we’ve to use outside the regular NPM repository.
Also, we can make the version of the package the same for everyone.
To make everyone use the same version, we can write.
npm config set save=true
npm config set save-exact=true
We make npm install
also install the same version.
package-lock.json
also locks the repositories to the same version.
Add Scripts to Our package.json
package.json
can hold project-related scripts.
They’re all in the scripts
folder.
This way, we can just have one command to do everything to start the project.
We can add a start
script to our project with npm start
.
For example, we can write:
"scripts": {
"start": "node app.js"
}
Then just run npm start
to run our app instead of node app.js
.
Also, we can add more commands:
"scripts": {
"postinstall": "bower install && grunt build",
"start": "node app.js",
"test": "node ./node_modules/jasmine/bin/jasmine.js"
}
postinstall
runs after the packages in package.json
are installed.
npm test
runs the test
script which runs the tests.
This lets us run tests without typing in multiple commands ourselves.
We can also add custom scripts into package.json
.
We can run them with npm run script {name}
where name
is the key of the script.
Use Environment Variables
We should set environment variables for things that run in different environments.
For example, we can use the dotenv library to read them from an .env
file or environment variables so we can use them in our app.
They can be accessed with process.env
in our Node app.
Use a Style Guide
If we adopt styles in a style guide, then we write our code in a consistent style.
Having consistent code makes it easier to understand.
We can make the checks automatic with linters like ESLint.
It contains rules for Node apps built-in.
Other style guides include:
- Airbnb — https://github.com/airbnb/javascript
- Google — https://google.github.io/styleguide/javascriptguide.xml
- jQuery — https://contribute.jquery.org/style-guide/js/
- Standard JS — http://standardjs.com/
Embrace async
We got to use async code with Node apps.
This way, they won’t hold up the whole app while waiting for something to complete.
To make our lives easier, we can use promises to write our async code.
To make them shorter, we can use async and await.
We can convert some Node async callbacks to promises with the util
module.
Some modules like fs
also have versions of its methods that return promises.
Conclusion
We should take full advantage of the features provided by package.json
and the npm
program.
Also, we should use async wherever we can.
A consistent coding style is also good.