DEV Community

Cover image for Node.js best practices
Tomek Poniatowicz for GraphQL Editor

Posted on • Updated on • Originally published at

Node.js best practices

Node.js is the most popular choice when building the backend for your app, no matter if you prefer a traditional REST API or using it to build something modern like the GraphQL server.


Node.js is a JavaScript runtime using an event-driven I/O model which makes it extremely efficient when it comes to making scalable network applications. It's cross-platform, so whether you are building a mobile app, web app or IoT, Node will do the job. It's light, it's scalable & it delivers! Whether you are building a side project or working on an enterprise app Node.js will fit your needs.

NodeJS work with any technology


Best practices

Node.js offers a lot, but to bring to the best you need to know and follow its best practices. If you are wondering where to find them the awesome open-source community is here to help!

This repo is the largest compilation of best Node.js content available online. It contains:

  • more than 80 best practices,
  • useful style guides
  • architectural patterns

As it's maintained by the community the "Node.JS Best Practices" is growing rapidly and new pull requests with fresh Node.js content are being created on a daily basis.

GitHub logo goldbergyoni / nodebestpractices

✅ The Node.js best practices list (August 2020)

Node.js Best Practices

Node.js Best Practices

86 items Last update: March, 2020 Updated for Node 13.1.0

nodepractices Follow us on Twitter! @nodepractices

Read in a different language: CNCN, BRBR, RURU, PLPL (ESES, FRFR, HEHE, KRKR and TRTR in progress!)

Built and maintained by our Steering Committee and Collaborators

Latest Best Practices and News

  • 🎉 Node.js best practices reached 40k stars: Thank you to each and every contributor who helped turning this project into what it is today! We've got lots of plans for the time ahead, as we expand our ever-growing list of Node.js best practices even further.

  • 🚀 Two New Best Practices: We've been working hard on two new best practices, a section about using npm ci to preview the dependency state in production environments and another on testing your middlewares in isolation

  • 🐳 Node.js + Docker best practices: We've opened a call for ideas to collect best practices related to running dockerized…

Best practices are divided into 7 groups of which each of them contains numerous good practices gathered from the community:

  1. Project structure
  2. Error handling
  3. Code style
  4. Testing & Quality
  5. Going to production
  6. Security
  7. Performance

Each good practice contains a TL;DR summary as well well as a link to extended content including:

  • detailed information
  • code examples
  • important quotes from different sources

Awesome, right? Rember to show the repo maintainers some love and leave them a star or contribute if you have some useful Node.js tips!

Boost your API with GraphQL

GraphQL Editor is a tool that would help you build, manage & deploy your GraphQL API much faster thanks to dozens of built-in micro features like mock backend or frontend engine for previewing your GraphQL queries!

GraphQL Editor

Discussion (5)

raftheunis87 profile image
Raf Theunis

Very interesting repository!

I was looking at the "Handle errors centrally. Not within middlewares" example. I do understand that it's better to handle errors within a dedicated object. But I found the given example to be incomplete? Say for example that I wrote an AppError class that extends from Error. If I throw this AppError in my application, how can I be sure that my dedicated error object will handle this?

Maybe a complete code example/gist could make this clearer for me.

Anyway, very nice repository! Keep up the great work!

nasidulislam profile image
Nasidul Islam

Great collection of tips !!

jagpalkooner profile image

Hey guys to learn HTML CSS JS API we have for projects to complete is there another similar website to learn react and do sample projects?

jonathanbrizio profile image
Jonathan Brizio

Until the moment, always work with SQL & NoSQL Databases, but when moving to GraphQL, I will take a look at your editor. Thanks for share!

bravemaster619 profile image

GraphQL is NOT a different type of database. It's more like a new idea of API structure, often compared to REST API.