└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Awesome NodeJS key notes :sparkles: :sparkles: :sparkles: 2 | [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 3 | 4 | Now, time is changing, maintainable and scalable are the most important in system development. NodeJS is the minialist javascript runtime build for web services. 5 | This repository is about some key-note when i learn nodeJS. Begin from node low-artchiture to node-module, node-framework. 6 | ## NodeJS Roadmap: 7 | ![https://github.com/aliyr/Nodejs-Developer-Roadmap](https://github.com/aliyr/Nodejs-Developer-Roadmap/raw/master/Node.js-developer-roadmap.png) 8 | ## NodeJS Core :heartpulse: :heartpulse: :heartpulse: 9 | * [Node documents v12.x](https://nodejs.org/docs/latest-v12.x/api/) (lastest LTS): Everything you need to known. 10 | * [V8 engine](https://github.com/v8/v8/wiki/Introduction): NodeJS was build at top V8 engine. Read more: [[1]](https://blog.sessionstack.com/how-javascript-works-inside-the-v8-engine-5-tips-on-how-to-write-optimized-code-ac089e62b12e), 11 | * [Event Loop](https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/): Event Loop is heart of NodeJS. Read more: [[1]](https://medium.com/the-node-js-collection/what-you-should-know-to-really-understand-the-node-js-event-loop-and-its-metrics-c4907b19da4c), [[2]](https://blog.risingstack.com/node-js-at-scale-understanding-node-js-event-loop/) 12 | 13 | ## NodeJS Popular Frameworks :rocket: :rocket: :rocket: 14 | * [Express](https://expressjs.com): Fast, unopinionated, minimalist web framework for Node.js. The most popular framework Nodejs. 15 | * [Meteor](www.meteor.com): Meteor is an ultra-simple environment for building modern web applications. 16 | * [Koa](https://koajs.com/): Koa is a new web framework designed by the team behind Express, which aims to be a smaller, more expressive, and more robust foundation for web applications and APIs. By leveraging async functions, Koa allows you to ditch callbacks and greatly increase error-handling. Koa does not bundle any middleware within its core, and it provides an elegant suite of methods that make writing servers fast and enjoyable. 17 | * [Sails](https://sailsjs.com): **makes it easy to build custom, enterprise-grade Node.js apps. Realtime framework MVC for NodeJS**. 18 | * [Fastify](fastify.io): **a node.js framework that is designed to be the replacement of express.js with a 65% better performance. See [benchmarks](https://fastify.io/benchmarks/)** 19 | 20 | * [FeatherJS](https://feathersjs.com/): **a framework for real-time applications and REST APIs** 21 | 22 | * **More**: [Popular fw and category](http://nodeframework.com/), [Top 5 fw 2019](https://medium.com/@OPTASY.com/what-are-the-best-node-js-frameworks-in-2019-and-why-top-5-4434770d2187) 23 | 24 | ## NodeJS Interesting Module :seedling: :seedling: :seedling: 25 | * [body-parser](https://github.com/expressjs/body-parser): Node.js body parsing middleware. 26 | * [multer](https://github.com/expressjs/multer): Node.js middleware for handling `multipart/form-data`. 27 | * [passport.js](http://www.passportjs.org/): Simple, unobtrusive authentication for Node.js 28 | * [pg](https://node-postgres.com/): a collection of node.js modules for interfacing with your PostgreSQL database, support for callbacks, promises, async/await, connection pooling, prepared statements, cursors, streaming results, C/C++ bindings, rich type parsing, and more! 29 | * [express-promise-router](https://github.com/express-promise-router/express-promise-router): A lightweight wrapper for Express 4's Router that allows middleware to return promises 30 | * [proxymise](https://github.com/kozhevnikov/proxymise): **Chainable Promise Proxy**. Lightweight ES6 Proxy for Promises with no additional dependencies. Proxymise allows for method and property chaining without need for intermediate then() or await for cleaner and simpler code. 31 | * [likely.js](https://github.com/sbyrnes/likely.js): A javascript library for collaborative filtering and recommendation engines designed for node.js 32 | * [ethereum/web3.js](https://github.com/ethereum/web3.js): Ethereum JavaScript API 33 | * [tensorflow/tfjs-node](https://github.com/tensorflow/tfjs-node): A JavaScript library for training and deploying ML models https://js.tensorflow.org 34 | * [nodemon](https://github.com/remy/nodemon): Monitor for any changes in your node.js application and automatically restart the server - perfect for development http://nodemon.io/ 35 | * [mongoose](http://mongoosejs.com/): elegant mongodb object modeling for node.js 36 | * [helmet](https://helmetjs.github.io/): Express.js security with HTTP headers 37 | 38 | ## NodeJS Preformance :chart_with_upwards_trend: :chart_with_upwards_trend: :chart_with_upwards_trend: 39 | 40 | ## NodeJS fullstack :tada: :tada: :tada: 41 | ### Design Pattern :art: :art: :art: 42 | * [:white_check_mark: The Node.js best practices list (December 2020)](https://github.com/goldbergyoni/nodebestpractices) 43 | * [Express application generator](https://expressjs.com/en/starter/generator.html) 44 | * [Docker node MVC - @bkfa](https://github.com/BKFA/expressMVC)* 45 | * [express MVC - @euclid1990](https://github.com/euclid1990/express)* 46 | 47 | ### Express view engine :palm_tree: :palm_tree: :palm_tree: 48 | * [ejs](http://ejs.co/#docs): view engine that i like most -> write like pure html. 49 | * [pug](https://github.com/pugjs/pug): the most popular view engine for nodejs. 50 | * [hbs](https://github.com/pillarjs/hbs): express view engine wrapper for Handlebars 51 | * [hjs](https://github.com/nullfirm/hjs): hogan.js NPM package for express 3.x (hjs) 52 | * [twig](https://github.com/twigjs/twig.js): twig.js is a pure JavaScript implementation of the Twig PHP templating language 53 | * [vash](https://github.com/kirbysayshi/vash): Vash, the 60 billion double-dollar template-maker. Razor syntax, for JavaScript templates 54 | 55 | ## NodeJS Related :zap: :zap: :zap: 56 | ### NodeJS prerequisite :sunflower: :sunflower: :sunflower: 57 | * [Blocking and non-blocking](https://nodejs.org/en/docs/guides/blocking-vs-non-blocking/) 58 | * [JSON](https://www.w3schools.com/js/js_json_intro.asp) 59 | * [AJAX](https://www.w3schools.com/js/js_ajax_intro.asp) 60 | ### Docker Nodejs 61 | * [Offical docker node](https://github.com/nodejs/docker-node) 62 | * [Dockerising a Node.js and MongoDB App](https://medium.com/statuscode/dockerising-a-node-js-and-mongodb-app-d22047e2806f) 63 | * [Docker node example](https://github.com/b00giZm/docker-compose-nodejs-examples) 64 | ### Helpful resources :girl: :girl: :girl: 65 | * [History if Node.js on the timeline - @RisingStack](https://blog.risingstack.com/history-of-node-js) 66 | * [What exactly is NodeJS? - @FreeCodeCamp](https://medium.freecodecamp.org/what-exactly-is-node-js-ae36e97449f5) 67 | * [You don't known Node - @SamerBuna](https://edgecoders.com/you-dont-know-node-6515a658a1ed) 68 | * [Encryption and decryption in Nodejs - @Lollyrock](http://lollyrock.com/articles/nodejs-encryption/) 69 | * [Node Tuts - Node.JS Video Tutorials (screencast)](http://nodetuts.com/) 70 | * [Node book @Pana](https://github.com/Pana/node-books) 71 | * [Node cool @sindrasorhus](https://github.com/sindresorhus/awesome-nodejs) 72 | * [We're under attack 23 node security best practice @nodepractices](https://medium.com/@nodepractices/were-under-attack-23-node-js-security-best-practices-e33c146cb87d) 73 | * [6 nodejs best practice @i0natan](https://github.com/i0natan/nodebestpractices#6-security-best-practices) 74 | * [Simple server side cache for express.js with nodejs @nodefoundation](https://medium.com/the-node-js-collection/simple-server-side-cache-for-express-js-with-node-js-45ff296ca0f0) 75 | 76 | ## NodeJS Vietnamese :notebook_with_decorative_cover: :notebook_with_decorative_cover: :notebook_with_decorative_cover: 77 | * [Nodejs artchitecture p1- @bkfateam](https://www.facebook.com/notes/bkfa-team/nodejs-architecture-concept-p1/322131021648618/) 78 | * [Nodejs artchitecture p2 - @bkfateam](https://www.facebook.com/notes/bkfa-team/nodejs-architecture-concept-p2/323275331534187/) 79 | * [Các trình thông dịch javascript và V8 engine - @bkfateam](https://www.facebook.com/notes/bkfa-team/c%C3%A1c-tr%C3%ACnh-th%C3%B4ng-d%E1%BB%8Bch-javascript-v%C3%A0-v8-engine-t%C3%ACm-hi%E1%BB%83u-v%C3%A0-%E1%BB%A9ng-d%E1%BB%A5ng-v%C3%A0o-vi%E1%BB%87c-t%E1%BB%91i-%C6%B0/380847369110316/) 80 | * [Tài liệu nodejs-core tiếng việt](https://drive.google.com/open?id=1WMihN6Bw6OtClI1KnEAacBXf4Ca6JcxA) 81 | * [Render ảnh với stream- @node++](https://nodeplusplus.com/2018/03/31/render-anh-voi-stream/) 82 | * [NodeJS là gi - Bài viết khá sâu - @SotaTek](https://sotatek.com/blog/nodejs-la-gi/) 83 | * [NodeJS – Hiểu Asynchronous Event-Driven Nonblocking I/O - @SotaTek](https://sotatek.com/blog/nodejs-hieu-asynchronous-event-drivent-nonblocking-io/) 84 | * [Chuyển sang lập trình Node.js - JavaScript - @Techmaster](https://techmaster.vn/posts/26304/hoc-lap-trinh-nodejs-javascript) 85 | * [Tại sao bạn nên học Node.js? - @Techmaster](https://techmaster.vn/posts/34075/tai-sao-ban-nen-hoc-nodejs) 86 | * [Node JS Architecture – Single Threaded Event Loop](https://viblo.asia/p/node-js-architecture-single-threaded-event-loop-Qbq5Qg4XZD8) 87 | * [Viblo community](https://viblo.asia/search?q=nodejs&s=views) 88 | 89 | ## Related repo: 90 | * [Awesome-nodejs @sindresorhus](https://github.com/sindresorhus/awesome-nodejs) 91 | * [Developer roadmap @aliyr](https://github.com/aliyr/Nodejs-Developer-Roadmap) 92 | * [Cheatsheets Express 4](https://github.com/azat-co/cheatsheets/tree/master/express4) 93 | * [Exhaustive checklist to assist in a security review of a Node.js web service code](https://github.com/jesusprubio/strong-node) 94 | --------------------------------------------------------------------------------