Syncronized vs. Asyncronized?
OOP vs. Node.js?
What are the promises? Resolve Reject? Callback?
Where not to use async/await?
V8, Call Stack, Node APIs, Callback Queue, Event Loop
Callback example:
fs . readFile ( "file1.txt" , ( err , data ) => {
if ( err ) throw new Error ( err ) ;
console . log ( data ) ;
console . log ( "Nisi lerdi ako nemas gicu" ) ;
} ) ;
console . log ( "Ona mala je ko kamen" ) ;
Promise example:
const data = await fs . readFileSync ( "file1.txt" ) ;
console . log ( data ) ;
console . log ( "Nisi lerdi ako nemas gicu" ) ;
๐ Most used Node.js modules
express
dotenv
path
fs
axios / request-native-promise
moment
body-parser
cron
lodash
validator
nodemailer
mongoose
connect-mongo
express-session
bcrypt [Check if it's depricated]
cookieParser
jsonwebtoken
passport/passport-facebook/passport-jwt/passport-local
cors / helmet
๐ฒ Structure of a project
โโ ๐ .vscode [optional]
| โโ ๐ settings.json [optional]
| โโ ๐ launch.json [optional]
|
โโ ๐ node_modules (auto-generate)
|
โโ ๐ server
| โโ ๐ api
| | โโ ๐ user
| | | โโ ๐ โ index.js
| | | โโ ๐ user.routes.js
| | | โโ ๐ user.model.js
| | | โโ ๐ user.controller.js
| | | โโ ๐ user.service.js
| | | โโ ๐ [singleton modules, services]
| | โโโ ...
| |
| โโ ๐ server.js
| โโ ๐ router.js
| โโโ๐ services
| โโ ๐ logger.js
| โโ ๐ dbconfig.js
| โโ ๐ [mostly singleton modules, services, mailer, middleware, varibales]
|
|
โโ๐ public
| โโ๐ views [.ejs, .html, .pug...]
| โโ๐ scripts [frontend javascript files .js ]
| โโ๐ stylesheets [.css, less. cess...]
| โโ๐ images
| โโ๐ assets [optional][media: files, audio, video...]
|
โโ ๐ .eslintrc.json / .eslintrc.js
โโ ๐ .package.json
โโ ๐ .package-lock.json (auto-generate)
โโ ๐ .gitignore
โโ ๐ .env (.staging.env && .production.env)
โโ ๐ Procfile (if you are deploying on heroku)
โโ ๐ README.md
logger.js - morgan/winstong... logger configuration
dbconfig.js - mongo/dynamo/mysql... configuration
.env
.eslintrc.json - linter configuration
package.json - node project/packages configuration
NODE_ENV
dependecies
engine
scripts
<something>.routes.js
- routers
<something>.model.js
- DB collection
<something>.controller.js
- logic
<something>.services.js
- queries
๐ฏ Documentation comments
/**
*@description
*@return
*@params
*/
const functionName = [ async ] ( ) = > { } ;