Опыт Node API и совместное использование начальных проектов (1) Обзор проекта

Node.js задняя часть GitHub API

предисловие

Основываясь на практике микросервиса Node в моей текущей компании, я постоянно поддерживаю и обновляю начальный проект Node Restful API, который настоящим предоставляется для справки и обсуждения.Почти все в проекте использует новейшие функции node/javascript и соответствующие модули.gramma, и практика.
Если вам нужен большой и всеобъемлющий фреймворк, eggjs должен быть хорошим выбором.Если у вас есть сильные практические способности, вы стремитесь к свободе и гибкости и не исключаете экспресс, тогда вы можете попробовать принять мой проект.

Адрес склада проекта на github, приветственная звездочка:GitHub.com/Сяожули…
Сначала я выложу подробное описание проекта на github, после чего в следующем посте покажу все аспекты проекта по порядку, а как этого добиться, вы можете посмотреть исходный код, я вам верю понравятся мои чистые и лаконичные, четкие слои и своевременный расширенный стиль кода 😅.

Обзор

Techs involved

Aspect Tech
web fx express
task node-schedule
db postgres sequelize
db mongodb mongoose
memcache node_redis
http client axios
logger log4js-node
mailer nodemailer
dashboard express-status-monitor
jwt auth jsonwebtoken
validation express-validator
async flow async/await of ES7
log auth http-auth
js checker eslint
proc mana pm2

Other features offering

Api access control via ts & token.
Elaborate api request log into files.
Flexible declarative request validation.
Request log online view behind http auth.
Server status monitor dashboard behind http auth.
Ready made api samples with jwt and latest js features.
Centralized system level config & messages management.
Reasonable multi-env config merging mechanism.
Definite DRY, SRP, AOP, ES6/ES7, OCD, etc.

Npm commands usage

cnpm i      # install all packages for dev env
npm start   # run service in dev env, or hit F5 to debug in vsc
npm run pm2start        # host via pm2 in prod env
npm run pm2startqa      # host via pm2 in qa env
npm run pm2starttest    # host via pm2 in test env
npm run pm2restart      # restart hosted service in prod env
npm run pm2restartqa    # restart hosted service in qa env
npm run pm2restarttest  # restart hosted service in test env
npm run pm2stop         # hang up hosted service
npm run pm2delete       # remove hosted service