René's URL Explorer Experiment


Title: GitHub - orpms/nodebestpractices: :white_check_mark: The largest Node.js best practices list (April 2019)

Open Graph Title: GitHub - orpms/nodebestpractices: :white_check_mark: The largest Node.js best practices list (April 2019)

X Title: GitHub - orpms/nodebestpractices: :white_check_mark: The largest Node.js best practices list (April 2019)

Description: :white_check_mark: The largest Node.js best practices list (April 2019) - orpms/nodebestpractices

Open Graph Description: :white_check_mark: The largest Node.js best practices list (April 2019) - orpms/nodebestpractices

X Description: :white_check_mark: The largest Node.js best practices list (April 2019) - orpms/nodebestpractices

Mail addresses
me@goldbergyoni.com

Opengraph URL: https://github.com/orpms/nodebestpractices

X: @github

direct link

Domain: patch-diff.githubusercontent.com

route-pattern/:user_id/:repository
route-controllerfiles
route-actiondisambiguate
fetch-noncev2:69fd3ba9-07e4-a720-8c1e-14abf2e883ac
current-catalog-service-hashf3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb
request-idD7A4:9D969:1C1ABA1:243CDB5:697FBD88
html-safe-nonce4fd9b7a1147ef2c916f4e5b2a2116475dd5c644d44b8aa2eecbf5f19a9b670e0
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEN0E0OjlEOTY5OjFDMUFCQTE6MjQzQ0RCNTo2OTdGQkQ4OCIsInZpc2l0b3JfaWQiOiIxMzk3NTk2MjE5NzQ3ODQzNDY0IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmacc0df149a3f0c50b2315b125ca2bcd3dd8f096a1e193e04dd020fb0ed94031a48
hovercard-subject-tagrepository:184535415
github-keyboard-shortcutsrepository,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location//
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/orpms/nodebestpractices
twitter:imagehttps://opengraph.githubassets.com/9590c135651b51b681c04320e697475ee09e2070576f2055908525ace888634c/orpms/nodebestpractices
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/9590c135651b51b681c04320e697475ee09e2070576f2055908525ace888634c/orpms/nodebestpractices
og:image:alt:white_check_mark: The largest Node.js best practices list (April 2019) - orpms/nodebestpractices
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None60279d4097367e16897439d16d6bbe4180663db828c666eeed2656988ffe59f6
turbo-cache-controlno-preview
go-importgithub.com/orpms/nodebestpractices git https://github.com/orpms/nodebestpractices.git
octolytics-dimension-user_id46227983
octolytics-dimension-user_loginorpms
octolytics-dimension-repository_id184535415
octolytics-dimension-repository_nwoorpms/nodebestpractices
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forktrue
octolytics-dimension-repository_parent_id103633984
octolytics-dimension-repository_parent_nwogoldbergyoni/nodebestpractices
octolytics-dimension-repository_network_root_id103633984
octolytics-dimension-repository_network_root_nwogoldbergyoni/nodebestpractices
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release7c85641c598ad130c74f7bcc27f58575cac69551
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/orpms/nodebestpractices#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Forpms%2Fnodebestpractices
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Forpms%2Fnodebestpractices
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=orpms%2Fnodebestpractices
Reloadhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices
Reloadhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices
Reloadhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices
orpms https://patch-diff.githubusercontent.com/orpms
nodebestpracticeshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices
goldbergyoni/nodebestpracticeshttps://patch-diff.githubusercontent.com/goldbergyoni/nodebestpractices
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Forpms%2Fnodebestpractices
Fork 2 https://patch-diff.githubusercontent.com/login?return_to=%2Forpms%2Fnodebestpractices
Star 0 https://patch-diff.githubusercontent.com/login?return_to=%2Forpms%2Fnodebestpractices
twitter.com/nodepractices/https://twitter.com/nodepractices/
CC-BY-SA-4.0 license https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/LICENSE
0 stars https://patch-diff.githubusercontent.com/orpms/nodebestpractices/stargazers
10.7k forks https://patch-diff.githubusercontent.com/orpms/nodebestpractices/forks
Branches https://patch-diff.githubusercontent.com/orpms/nodebestpractices/branches
Tags https://patch-diff.githubusercontent.com/orpms/nodebestpractices/tags
Activity https://patch-diff.githubusercontent.com/orpms/nodebestpractices/activity
Star https://patch-diff.githubusercontent.com/login?return_to=%2Forpms%2Fnodebestpractices
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Forpms%2Fnodebestpractices
Code https://patch-diff.githubusercontent.com/orpms/nodebestpractices
Pull requests 0 https://patch-diff.githubusercontent.com/orpms/nodebestpractices/pulls
Actions https://patch-diff.githubusercontent.com/orpms/nodebestpractices/actions
Projects 0 https://patch-diff.githubusercontent.com/orpms/nodebestpractices/projects
Security 0 https://patch-diff.githubusercontent.com/orpms/nodebestpractices/security
Insights https://patch-diff.githubusercontent.com/orpms/nodebestpractices/pulse
Code https://patch-diff.githubusercontent.com/orpms/nodebestpractices
Pull requests https://patch-diff.githubusercontent.com/orpms/nodebestpractices/pulls
Actions https://patch-diff.githubusercontent.com/orpms/nodebestpractices/actions
Projects https://patch-diff.githubusercontent.com/orpms/nodebestpractices/projects
Security https://patch-diff.githubusercontent.com/orpms/nodebestpractices/security
Insights https://patch-diff.githubusercontent.com/orpms/nodebestpractices/pulse
Brancheshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/branches
Tagshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/tags
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/branches
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/tags
1,001 Commitshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/commits/master/
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/commits/master/
.githubhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/tree/master/.github
.githubhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/tree/master/.github
.operationshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/tree/master/.operations
.operationshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/tree/master/.operations
assetshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/tree/master/assets
assetshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/tree/master/assets
sectionshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/tree/master/sections
sectionshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/tree/master/sections
.gitignorehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/.gitignore
.gitignorehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/.gitignore
.travis.ymlhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/.travis.yml
.travis.ymlhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/.travis.yml
LICENSEhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/LICENSE
LICENSEhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/LICENSE
README.brazilian-portuguese.mdhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/README.brazilian-portuguese.md
README.brazilian-portuguese.mdhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/README.brazilian-portuguese.md
README.chinese.mdhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/README.chinese.md
README.chinese.mdhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/README.chinese.md
README.korean.mdhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/README.korean.md
README.korean.mdhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/README.korean.md
README.mdhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/README.md
README.mdhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/README.md
READMEhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices
CC-BY-SA-4.0 licensehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#nodejs-best-practices
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/banner-2.jpg
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#--
https://camo.githubusercontent.com/cafcbe9e6591e650c1eb566a75584e2d89e572963c4cd73ac00df941682c3956/68747470733a2f2f696d672e736869656c64732e696f2f62616467652fe29a992532304974656d253230636f756e742532302d2532303832253230426573742532305072616374696365732d626c75652e737667
https://camo.githubusercontent.com/b3fbf1892cb05a45b38480c819edbea671a068f6028a7ceb3ebcbe856f7369c9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2546302539462539332538352532304c6173742532307570646174652532302d2532304170722532303133253230323031392d677265656e2e737667
https://camo.githubusercontent.com/41a78ed524ad134c7f7ec42c384694c04bca04aad8f7fd982c7e0614f85b8946/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2025453225394325393425323055706461746564253230466f7225323056657273696f6e2532302d2532304e6f646525323031302e31352e332532304c54532d627269676874677265656e2e737667
https://twitter.com/nodepractices/
@nodepracticeshttps://twitter.com/nodepractices/
CNhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/README.chinese.md
BRhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/README.brazilian-portuguese.md
(ES, FR, HE, KR, RU and TR in progress!)https://patch-diff.githubusercontent.com/orpms/nodebestpractices#translations
Steering Committeehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices#steering-committee
Collaboratorshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices#collaborators
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#built-and-maintained-by-our-steering-committee-and-collaborators
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#latest-best-practices-and-news
Avoid test-fixtures, add data per testhttps://github.com/i0natan/nodebestpractices#4-testing-and-overall-quality-practices
Avoid publishing secrets to the npm registryhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/avoid_publishing_secrets.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/flags/BR.png
Brazilian Portuguesehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/README.brazilian-portuguese.md
Marcelo Melohttps://github.com/marcelosdm
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#welcome-3-things-you-ought-to-know-first
writing guidelines herehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/.operations/writing-guidelines.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#table-of-contents
Project Structure Practices (5)https://patch-diff.githubusercontent.com/orpms/nodebestpractices#1-project-structure-practices
Error Handling Practices (11) https://patch-diff.githubusercontent.com/orpms/nodebestpractices#2-error-handling-practices
Code Style Practices (12) https://patch-diff.githubusercontent.com/orpms/nodebestpractices#3-code-style-practices
Testing And Overall Quality Practices (11) https://patch-diff.githubusercontent.com/orpms/nodebestpractices#4-testing-and-overall-quality-practices
Going To Production Practices (18) https://patch-diff.githubusercontent.com/orpms/nodebestpractices#5-going-to-production-practices
Security Practices (25)https://patch-diff.githubusercontent.com/orpms/nodebestpractices#6-security-best-practices
Performance Practices (1) (In Progress️ ✍️)https://patch-diff.githubusercontent.com/orpms/nodebestpractices#7-performance-best-practices
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#1-project-structure-practices
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-11-structure-your-solution-by-components
Read More: structure by componentshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/projectstructre/breakintcomponents.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-12-layer-your-components-keep-express-within-its-boundaries
Read More: layer your apphttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/projectstructre/createlayers.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-13-wrap-common-utilities-as-npm-packages
Read More: Structure by featurehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/projectstructre/wraputilities.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-14-separate-express-app-and-server
Expresshttps://expressjs.com/
Read More: separate Express 'app' and 'server'https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/projectstructre/separateexpress.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-15-use-environment-aware-secure-and-hierarchical-config
rchttps://www.npmjs.com/package/rc
nconfhttps://www.npmjs.com/package/nconf
confighttps://www.npmjs.com/package/config
Read More: configuration best practiceshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/projectstructre/configguide.md
⬆ Return to tophttps://patch-diff.githubusercontent.com/orpms/nodebestpractices#table-of-contents
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#2-error-handling-practices
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-21-use-async-await-or-promises-for-async-error-handling
Read More: avoiding callbackshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/errorhandling/asyncerrorhandling.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-22-use-only-the-built-in-error-object
Read More: using the built-in error objecthttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/errorhandling/useonlythebuiltinerror.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-23-distinguish-operational-vs-programmer-errors
Read More: operational vs programmer errorhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/errorhandling/operationalvsprogrammererror.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-24-handle-errors-centrally-not-within-an-express-middleware
Read More: handling errors in a centralized placehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/errorhandling/centralizedhandling.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-25-document-api-errors-using-swagger-or-graphql
Read More: documenting API errors in Swagger or GraphQLhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/errorhandling/documentingusingswagger.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-26-exit-the-process-gracefully-when-a-stranger-comes-to-town
Foreverhttps://www.npmjs.com/package/forever
PM2http://pm2.keymetrics.io/
Read More: shutting the processhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/errorhandling/shuttingtheprocess.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-27-use-a-mature-logger-to-increase-error-visibility
Winstonhttps://www.npmjs.com/package/winston
Bunyanhttps://github.com/trentm/node-bunyan
Log4jshttp://stritti.github.io/log4js/
Read More: using a mature loggerhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/errorhandling/usematurelogger.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-28-test-error-flows-using-your-favorite-test-framework
Read More: testing error flowshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/errorhandling/testingerrorflows.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-29-discover-errors-and-downtime-using-apm-products
Read More: using APM productshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/errorhandling/apmproducts.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-210-catch-unhandled-promise-rejections
Read More: catching unhandled promise rejectionhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/errorhandling/catchunhandledpromiserejection.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-211-fail-fast-validate-arguments-using-a-dedicated-library
Read More: failing fasthttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/errorhandling/failfast.md
⬆ Return to tophttps://patch-diff.githubusercontent.com/orpms/nodebestpractices#table-of-contents
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#3-code-style-practices
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-31-use-eslint
ESLinthttps://eslint.org
prettierhttps://www.npmjs.com/package/prettier
beautifyhttps://www.npmjs.com/package/js-beautify
Read More: Using ESLint and Prettierhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/codestylepractices/eslint_prettier.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-32-nodejs-specific-plugins
eslint-plugin-nodehttps://www.npmjs.com/package/eslint-plugin-node
eslint-plugin-mochahttps://www.npmjs.com/package/eslint-plugin-mocha
eslint-plugin-node-securityhttps://www.npmjs.com/package/eslint-plugin-security
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-33-start-a-codeblocks-curly-braces-on-the-same-line
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#code-example
Read more: "Why do results vary based on curly brace placement?" (StackOverflow)https://stackoverflow.com/questions/3641519/why-does-a-results-vary-based-on-curly-brace-placement
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-34-dont-forget-the-semicolon
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#code-example-1
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-35-name-your-functions
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-36-use-naming-conventions-for-variables-constants-functions-and-classes
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#code-example-2
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-37-prefer-const-over-let-ditch-the-var
shouldn't be used in ES6https://hackernoon.com/why-you-shouldnt-use-var-anymore-f109a58b9b70
Read more: JavaScript ES6+: var, let, or const? https://medium.com/javascript-scene/javascript-es6-var-let-or-const-ba58b8dcde75
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-38-require-modules-first-not-inside-functions
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-39-require-modules-by-folders-opposed-to-the-files-directly
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#code-example-3
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-310-use-the--operator
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#code-example-4
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-311-use-async-await-avoid-callbacks
Read more: Guide to async await 1.0https://github.com/yortus/asyncawait
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-312-use-arrow-function-expressions-
Read more: It’s Time to Embrace Arrow Functionshttps://medium.com/javascript-scene/familiarity-bias-is-holding-you-back-its-time-to-embrace-arrow-functions-3d37e1a9bb75
⬆ Return to tophttps://patch-diff.githubusercontent.com/orpms/nodebestpractices#table-of-contents
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#4-testing-and-overall-quality-practices
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-41-at-the-very-least-write-api-component-testing
Postmanhttps://www.getpostman.com/
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-42-include-3-parts-in-each-test-name
Read More: Include 3 parts in each test namehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/testingandquality/3-parts-in-name.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-43-detect-code-issues-with-a-linter
Section 3https://github.com/i0natan/nodebestpractices#3-code-style-practices
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-44-avoid-global-test-fixtures-and-seeds-add-data-per-test
Read More: Avoid global test fixtureshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/testingandquality/avoid-global-test-fixture.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-45-constantly-inspect-for-vulnerable-dependencies
npm audithttps://docs.npmjs.com/cli/audit
snyk.iohttps://snyk.io
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-46-tag-your-tests
Mochahttps://mochajs.org/
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-47-check-your-test-coverage-it-helps-to-identify-wrong-test-patterns
Istanbul/NYC https://github.com/gotwarlost/istanbul
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-48-inspect-for-outdated-packages
npm-check-updateshttps://www.npmjs.com/package/npm-check-updates
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-49-use-docker-compose-for-e2e-testing
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-410-refactor-regularly-using-static-analysis-tools
Sonarqubehttps://www.sonarqube.org/
starshttps://github.com/SonarSource/sonarqube
Code Climatehttps://codeclimate.com/
starshttps://github.com/codeclimate/codeclimate
Read More: Refactoring!https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/testingandquality/refactoring.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-411-carefully-choose-your-ci-platform-jenkins-vs-circleci-vs-travis-vs-rest-of-the-world
Jenkinshttps://jenkins.io/
CircleCIhttps://circleci.com
Read More: Choosing CI platformhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/testingandquality/citools.md
⬆ Return to tophttps://patch-diff.githubusercontent.com/orpms/nodebestpractices#table-of-contents
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#5-going-to-production-practices
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-51-monitoring
Read More: Monitoring!https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/monitoring.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-52-increase-transparency-using-smart-logging
Read More: Increase transparency using smart logginghttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/smartlogging.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-53-delegate-anything-possible-eg-gzip-ssl-to-a-reverse-proxy
Read More: Delegate anything possible (e.g. gzip, SSL) to a reverse proxyhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/delegatetoproxy.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-54-lock-dependencies
Read More: Lock dependencieshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/lockdependencies.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-55-guard-process-uptime-using-the-right-tool
Read More: Guard process uptime using the right toolhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/guardprocess.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-56-utilize-all-cpu-cores
Read More: Utilize all CPU coreshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/utilizecpu.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-57-create-a-maintenance-endpoint
Read More: Create a ‘maintenance endpoint’https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/createmaintenanceendpoint.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-58-discover-errors-and-downtime-using-apm-products
Read More: Discover errors and downtime using APM productshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/apmproducts.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-59-make-your-code-production-ready
Read More: Make your code production-readyhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/productioncode.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-510-measure-and-guard-the-memory-usage
Walmarthttps://www.joyent.com/blog/walmart-node-js-memory-leak
Read More: Measure and guard the memory usagehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/measurememory.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-511-get-your-frontend-assets-out-of-node
Read More: Get your frontend assets out of Nodehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/frontendout.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-512-be-stateless-kill-your-servers-almost-every-day
Read More: Be stateless, kill your Servers almost every dayhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/bestateless.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-513-use-tools-that-automatically-detect-vulnerabilities
Read More: Use tools that automatically detect vulnerabilitieshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/detectvulnerabilities.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-514-assign-a-transaction-id-to-each-log-statement
Read More: Assign ‘TransactionId’ to each log statementhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/assigntransactionid.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-515-set-node_envproduction
Read More: Set NODE_ENV=productionhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/setnodeenv.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-516-design-automated-atomic-and-zero-downtime-deployments
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-517-use-an-lts-release-of-nodejs
Read More: Use an LTS release of Node.jshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/LTSrelease.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-518-dont-route-logs-within-the-app
Read More: Log Routinghttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/production/logrouting.md
⬆ Return to tophttps://patch-diff.githubusercontent.com/orpms/nodebestpractices#table-of-contents
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#6-security-best-practices
https://camo.githubusercontent.com/06a7004640c6066f8b138350acf4fe351c79d135419d290f7c5ec652004bbcfe/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4f57415350253230546872656174732d546f7025323031302d677265656e2e737667
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-61-embrace-linter-security-rules
https://www.owasp.org/index.php/Top_10-2017_A1-Injection
https://www.owasp.org/index.php/Top_10-2017_A7-Cross-Site_Scripting_(XSS)
eslint-plugin-securityhttps://github.com/nodesecurity/eslint-plugin-security
Read More: Lint ruleshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/lintrules.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-62-limit-concurrent-requests-using-a-middleware
https://www.owasp.org/index.php/Denial_of_Service
express-rate-limithttps://www.npmjs.com/package/express-rate-limit
Read More: Implement rate limitinghttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/limitrequests.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-63-extract-secrets-from-config-files-or-use-packages-to-encrypt-them
https://www.owasp.org/index.php/Top_10-2017_A6-Security_Misconfiguration
https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure
Read More: Secret managementhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/secretmanagement.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-64-prevent-query-injection-vulnerabilities-with-ormodm-libraries
https://www.owasp.org/index.php/Top_10-2017_A1-Injection
Sequelizehttps://github.com/sequelize/sequelize
Knexhttps://github.com/tgriesser/knex
mongoosehttps://github.com/Automattic/mongoose
Read More: Query injection prevention using ORM/ODM librarieshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/ormodmusage.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-65-collection-of-generic-security-best-practices
Read More: Common security best practiceshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/commonsecuritybestpractices.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-66-adjust-the-http-response-headers-for-enhanced-security
https://www.owasp.org/index.php/Top_10-2017_A6-Security_Misconfiguration
helmethttps://www.npmjs.com/package/helmet
Read More: Using secure headers in your applicationhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/secureheaders.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-67-constantly-and-automatically-inspect-for-vulnerable-dependencies
https://www.owasp.org/index.php/Top_10-2017_A9-Using_Components_with_Known_Vulnerabilities
npm audithttps://docs.npmjs.com/cli/audit
snykhttps://snyk.io/
Read More: Dependency securityhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/dependencysecurity.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-68-avoid-using-the-nodejs-crypto-library-for-handling-passwords-use-bcrypt
https://www.owasp.org/index.php/Top_10-2017_A2-Broken_Authentication
Read More: Use Bcrypthttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/bcryptpasswords.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-69-escape-html-js-and-css-output
https://www.owasp.org/index.php/Top_10-2017_A7-Cross-Site_Scripting_(XSS)
Read More: Escape outputhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/escape-output.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-610-validate-incoming-json-schemas
https://www.owasp.org/index.php/Top_10-2017_A7-Cross-Site_Scripting_(XSS)
https://www.owasp.org/index.php/Top_10-2017_A8-Insecure_Deserialization
jsonschemahttps://www.npmjs.com/package/jsonschema
joihttps://www.npmjs.com/package/joi
Read More: Validate incoming JSON schemashttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/validation.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-611-support-blacklisting-jwts
https://www.owasp.org/index.php/Top_10-2017_A2-Broken_Authentication
Passport.jshttps://github.com/jaredhanson/passport
Read More: Blacklist JSON Web Tokenshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/expirejwt.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-612-prevent-brute-force-attacks-against-authorization
https://www.owasp.org/index.php/Top_10-2017_A2-Broken_Authentication
Read More: Login rate limitinghttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/login-rate-limit.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-613-run-nodejs-as-non-root-user
https://www.owasp.org/index.php/Top_10-2017_A5-Broken_Access_Control
Read More: Run Node.js as non-root userhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/non-root-user.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-614-limit-payload-size-using-a-reverse-proxy-or-a-middleware
https://www.owasp.org/index.php/Top_10-2017_A8-Insecure_Deserialization
https://www.owasp.org/index.php/Top_10-2017_A1-Injection
express body parserhttps://github.com/expressjs/body-parser
Read More: Limit payload sizehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/requestpayloadsizelimit.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-615-avoid-javascript-eval-statements
https://www.owasp.org/index.php/Top_10-2017_A7-Cross-Site_Scripting_(XSS)
https://www.owasp.org/index.php/Top_10-2017_A1-Injection
https://www.owasp.org/index.php/Top_10-2017_A4-XML_External_Entities_(XXE)
Read More: Avoid JavaScript eval statementshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/avoideval.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-616-prevent-evil-regex-from-overloading-your-single-thread-execution
https://www.owasp.org/index.php/Denial_of_Service
validator.jshttps://github.com/chriso/validator.js
safe-regexhttps://github.com/substack/safe-regex
Read More: Prevent malicious RegExhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/regex.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-617-avoid-module-loading-using-a-variable
https://www.owasp.org/index.php/Top_10-2017_A7-Cross-Site_Scripting_(XSS)
https://www.owasp.org/index.php/Top_10-2017_A1-Injection
https://www.owasp.org/index.php/Top_10-2017_A4-XML_External_Entities_(XXE)
Eslint-plugin-securityhttps://www.npmjs.com/package/eslint-plugin-security
Read More: Safe module loadinghttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/safemoduleloading.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-618-run-unsafe-code-in-a-sandbox
https://www.owasp.org/index.php/Top_10-2017_A7-Cross-Site_Scripting_(XSS)
https://www.owasp.org/index.php/Top_10-2017_A1-Injection
https://www.owasp.org/index.php/Top_10-2017_A4-XML_External_Entities_(XXE)
Read More: Run unsafe code in a sandboxhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/sandbox.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-619-take-extra-care-when-working-with-child-processes
https://www.owasp.org/index.php/Top_10-2017_A7-Cross-Site_Scripting_(XSS)
https://www.owasp.org/index.php/Top_10-2017_A1-Injection
https://www.owasp.org/index.php/Top_10-2017_A4-XML_External_Entities_(XXE)
Read More: Be cautious when working with child processeshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/childprocesses.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-620-hide-error-details-from-clients
https://www.owasp.org/index.php/Top_10-2017_A6-Security_Misconfiguration
Read More: Hide error details from clienthttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/hideerrors.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-621-configure-2fa-for-npm-or-yarn
https://www.owasp.org/index.php/Top_10-2017_A6-Security_Misconfiguration
Have you heard about the eslint developer who's password was hijacked?https://medium.com/@oprearocks/eslint-backdoor-what-it-is-and-how-to-fix-the-issue-221f58f1a8c8
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-622-modify-session-middleware-settings
https://www.owasp.org/index.php/Top_10-2017_A6-Security_Misconfiguration
Read More: Cookie and session securityhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/sessions.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-623-avoid-dos-attacks-by-explicitly-setting-when-a-process-should-crash
https://www.owasp.org/index.php/Denial_of_Service
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-624-prevent-unsafe-redirects
https://www.owasp.org/index.php/Top_10-2017_A1-Injection
Read More: Prevent unsafe redirectshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/saferedirects.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-625-avoid-publishing-secrets-to-the-npm-registry
https://www.owasp.org/index.php/Top_10-2017_A6-Security_Misconfiguration
Read More: Avoid publishing secretshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/security/avoid_publishing_secrets.md
⬆ Return to tophttps://patch-diff.githubusercontent.com/orpms/nodebestpractices#table-of-contents
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#7-performance-best-practices
Would you like to join?https://github.com/i0natan/nodebestpractices/issues/256
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#our-contributors-are-working-on-this-section-would-you-like-to-join
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/checkbox-small-blue.png
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#-71-prefer-native-js-methods-over-user-land-utils-like-lodash
Read More: Native over user land utilshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/sections/performance/nativeoverutil.md
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#milestones
milestoneshttps://github.com/i0natan/nodebestpractices/milestones
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#translations
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#completed-translations
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/flags/BR.png
Brazilian Portuguesehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/README.brazilian-portuguese.md
Marcelo Melohttps://github.com/marcelosdm
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/flags/CN.png
Chinesehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/README.chinese.md
Matt Jinhttps://github.com/mattjin
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#translations-in-progress
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/flags/FR.png
Frenchhttps://github.com/gaspaonrocks/nodebestpractices/blob/french-translation/README.french.md
Discussionhttps://github.com/i0natan/nodebestpractices/issues/129
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/flags/HE.png
Discussionhttps://github.com/i0natan/nodebestpractices/issues/156
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/flags/KR.png
Koreanhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/README.korean.md
Sangbeom Hanhttps://github.com/uronly14me
Discussionhttps://github.com/i0natan/nodebestpractices/issues/94
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/flags/RU.png
Russianhttps://github.com/i0natan/nodebestpractices/blob/russian-translation/README.russian.md
Discussionhttps://github.com/i0natan/nodebestpractices/issues/105
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/flags/ES.png
Spanishhttps://github.com/i0natan/nodebestpractices/blob/spanish-translation/README.spanish.md
Discussionhttps://github.com/i0natan/nodebestpractices/issues/95
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/flags/TR.png
Discussionhttps://github.com/i0natan/nodebestpractices/issues/139
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#steering-committee
Github projectshttps://github.com/i0natan/nodebestpractices/projects
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/members/yoni.png
Yoni Goldberghttps://github.com/i0natan
https://twitter.com/goldbergyoni
https://goldbergyoni.com
goldbergyoni.comhttps://goldbergyoni.com
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/members/bruno.png
Bruno Scheuflerhttps://github.com/BrunoScheufler
https://brunoscheufler.com/
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/members/kyle.png
Kyle Martinhttps://github.com/js-kyle
https://twitter.com/kylemartin_93
https://www.linkedin.com/in/kylemartinnz
https://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/assets/images/members/sagir.png
Sagir Khanhttps://github.com/sagirk
https://twitter.com/sagir_k
https://sagirk.com
https://linkedin.com/in/sagirk
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#collaborators
contributor guidelineshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/blob/master/.operations/CONTRIBUTING.md
https://github.com/idori
https://github.com/TheHollidayInn
Ido Richter (Founder)https://github.com/idori
Keith Hollidayhttps://github.com/TheHollidayInn
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#past-collaborators
https://github.com/refack
Refael Ackermannhttps://github.com/refack
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#thank-you-notes
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#flowers
Kevin Rambaudhttps://github.com/kevinrambaud
Michael Finehttps://github.com/mfine15
Shreya Dahalhttps://github.com/squgeim
ChangJoo Parkhttps://github.com/ChangJoo-Park
Matheus Cruz Rochahttps://github.com/matheusrocha89
Yog Mehtahttps://github.com/BitYog
Kudakwashe Paradzayihttps://github.com/kudapara
t1st3https://github.com/t1st3
mulijordan1976https://github.com/mulijordan1976
Matan Kushnerhttps://github.com/matchai
Fabio Hirokihttps://github.com/fabiothiroki
James Sumnershttps://github.com/jsumners
Chandan Raihttps://github.com/crowchirp
Dan Gamblehttps://github.com/dan-gamble
PJ Trainorhttps://github.com/trainorpj
Remek Ambroziakhttps://github.com/reod
Yoni Jahhttps://github.com/yonjah
Misha Khokhlovhttps://github.com/hazolsky
Evgeny Orekhovhttps://github.com/EvgenyOrekhov
Gediminas Petrikashttps://github.com/gediminasml
Isaac Halvorsonhttps://github.com/hisaac
Vedran Karačićhttps://github.com/vkaracic
lallenlowehttps://github.com/lallenlowe
Nathan Wellshttps://github.com/nwwells
Paulo Vítor S Reishttps://github.com/paulovitin
syzerhttps://github.com/syzer
David Sanchohttps://github.com/davesnx
Robert Manoleahttps://github.com/pupix
Xavier Hohttps://github.com/spaxe
Aaron Arneyhttps://github.com/ocularrhythm
Jan Charles Maghirang Adonahttps://github.com/septa97
Allen Fanghttps://github.com/AllenFang
Leonardo Villelahttps://github.com/leonardovillela
Michal Zaleckihttps://github.com/MichalZalecki
Chris Nicolahttps://github.com/chrisnicola
Alejandro Corredorhttps://github.com/aecorredor
Ye Min Htuthttps://github.com/ymhtut
cwarhttps://github.com/cwar
Yuweihttps://github.com/keyfoxth
Utkarsh Bhatthttps://github.com/utkarshbhatt12
Duarte Mendeshttps://github.com/duartemendes
Sagir Khanhttps://github.com/sagirk
Jason Kimhttps://github.com/serv
Mitja O.https://github.com/Max101
Sandro Miguel Marqueshttps://github.com/SandroMiguel
Gabe Kuslanskyhttps://github.com/GabeKuslansky
Ron Grosshttps://github.com/ripper234
Valeri Karpovhttps://github.com/vkarpov15
Sergiohttps://github.com/imsergiobernal
Duarte Mendeshttps://github.com/duartemendes
Nikola Telkedzhievhttps://github.com/ntelkedzhiev
Vitor Godoyhttps://github.com/vitordagamagodoy
Manish Saraanhttps://github.com/manishsaraan
Sangbeom Hanhttps://github.com/uronly14me
blackmatchhttps://github.com/blackmatch
Joe Reevehttps://github.com/ISNIT0
Marcelo Melohttps://github.com/marcelosdm
Ryan Busbyhttps://github.com/BusbyActual
Iman Mohamadihttps://github.com/ImanMh
Remek Ambroziakhttps://github.com/reod
Sergii Paryzhskyihttps://github.com/HeeL
Kapil Patelhttps://github.com/kapilepatel
迷渡https://github.com/justjavac
Hozefahttps://github.com/hozefaj
Ethanhttps://github.com/el-ethan
Samhttps://github.com/milkdeliver
Arlindhttps://github.com/ArlindXh
Teddy Toussainthttps://github.com/ttous
Lewishttps://github.com/LewisArdern
DouglasMVhttps://github.com/DouglasMV
Corey Clearyhttps://github.com/coreyc
Mehmet Perkhttps://github.com/mperk
Ryan Ouyanghttps://github.com/ryanouyang
Gabriel Lidenorhttps://github.com/GabrielLidenor
Romanhttps://github.com/animir
Francozeirahttps://github.com/Francozeira
https://patch-diff.githubusercontent.com/orpms/nodebestpractices#stars
Kyle Martinhttps://github.com/js-kyle
Keith Hollidayhttps://github.com/TheHollidayInn
Corey Clearyhttps://github.com/coreyc
Maximilian Berkmannhttps://github.com/Berkmann18
DouglasMVhttps://github.com/DouglasMV
Marcelo Melohttps://github.com/marcelosdm
Mehmet Perkhttps://github.com/mperk
Ryan Ouyanghttps://github.com/ryanouyang
twitter.com/nodepractices/https://twitter.com/nodepractices/
Readme https://patch-diff.githubusercontent.com/orpms/nodebestpractices#readme-ov-file
CC-BY-SA-4.0 license https://patch-diff.githubusercontent.com/orpms/nodebestpractices#CC-BY-SA-4.0-1-ov-file
Please reload this pagehttps://patch-diff.githubusercontent.com/orpms/nodebestpractices
Activityhttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/activity
Custom propertieshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/custom-properties
0 starshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/stargazers
0 watchinghttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/watchers
2 forkshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/forks
Report repository https://patch-diff.githubusercontent.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Forpms%2Fnodebestpractices&report=orpms+%28user%29
Releaseshttps://patch-diff.githubusercontent.com/orpms/nodebestpractices/releases
Packages 0https://patch-diff.githubusercontent.com/orgs/orpms/packages?repo_name=nodebestpractices
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.