loading...

Essential packages for Node.js newbies

uf4no profile image Antonio Updated on ・2 min read

Finding packages in NPM that solve certain problem or that just can make your life easier as a developer can be difficult, and even more if you're new to Node.js.

When I started learning Node I asked some of my friends (which were already working in JS projects) to tell me the packages they used the most so I could level up my skills. The list I got was very basic and I've been adding more packages to it whenever I've found the need to use them.

Searching here I found this post by @ben from last year and, although people suggested a lot of very useful packages, I think they are mostly for advance users.

I know this list is very short so maybe we can improve it together!

Backend:
- express: web application server framework
- body-parser: middleware for express
- hapi: another web framework with built in plugins for auth, caching, cookies... (@Jeremy Shore)
- axios: to send http requests.
- dotenv: load variables from a .env file as environment variables. Super useful to load different database details depending on local, staging and production.

Database:
- mongoose - Interact with MongoDB
- json-server - Creates a fake REST API from a JSON file. Super useful when working in front-end projects or to mock an external API.

Security, encrypt:
- jsonwebtoken: to generate ,validate and decode JWT
- bcrypt: encryption functions

Testing
- mocha: Testing framework
- chai: Assertion library
- jest: another test framework with coverage reports built in (@joelnet )
- chai-http: send http requests from your tests
- sinon: To create stubs
- nock: To create mocks
- nyc: To generate test coverage reports

Others:
- amqplib: For Rabbit MQ
- debug: prints debug messages in console
- watson: another debug library, has different levels of debug
- url: to parse URLs
- moment: to format dates
- lodash: helper functions to work with arrays, objects, numbers...

Plugins/code formatters:
- nodemon: restart app when changing files
- prettier
- eslint

What do you guys think? Which are the essential packages you think a newbie should know about? I'll try to keep this list updated as much as I can so it can be helpful to others :)

Posted on by:

uf4no profile

Antonio

@uf4no

My name is Antonio and I'm from Zamora (Spain) I live in London and work as a freelance full stack developer.

Discussion

markdown guide
 

I would recommend Jest for testing. I have switched from other test frameworks to Jest because it has a lot of things built in. The big one I always setup is istanbul. Jest has this configured automatically by just adding a flag jest --coverage. It has saved me a lot of setup time.

 

Thanks for sharing! I didn't knew Jest could generate coverage reports out of the box.
I'll include it to the list :)

 

Why use axios when you can just use the built-in fetch functionality with @babel/polyfill? Also, I would recommend maybe hapi as well, since I have seen it used quite a bit as well.

 

Thanks! I'll check how to use fetch :)
I've added hapi to the list (didnt knew about it...)