DEV Community

Duc Ng
Duc Ng

Posted on

NodeJS Rest Express MongoDB and more: typescript, passport, JWT, socket.io, HTTP2, async/await, nodemailer, templates.

Hey there!

Have you tried to set up a backend NodeJS app with typescript, passport, JWT, socket.io, HTTPS, HTTP2, async/await, nodemailer, templates, pagination, docker, yada yada !@#$%^&*() ?

Hope I didn't scare you away with those jargons :)
If you're still there, welcome onboard!

I have spent quite some time surfing around looking for the right NodeJS backend setup for my webapps but I haven't quite found the one that fits all of my needs. So here we go, same old same old introduction:

NodeJS Rest Express MongoDB (REM) - a production-ready lightweight backend setup.

Ready? Go...

 Typescript      Express 4.15       CORS     Helmet    DotEnv   joi (validation)   forever
  Mongoose 4.9    Passport  JWT      Await
  Tslint          Apidoc    Docker   Husky    Morgan    Travis   Windows (Powershell)
  Tests
            Mocha  Chai     Sinon    istanbul
  MORE:
            HTTPS           HTTP2 (spdy)      Socketio 2.1       Init DB Data
            Slack message   Nodemailer        Mailgun            Email Templates    Forgot Password
            VSCode Debug    Dependabot        Codacy             File upload (multer)
      API
            API response    (data, meta: limit, offset, sort)    Transform res
            apiJson         Pagination query      Regex query    Whitelist fields in response
            mstime          API response time     Stack trace in Response
Enter fullscreen mode Exit fullscreen mode

Hope that one didn't hurt your eyes also :] (hey, you're still here with me right?)

Ok, I admit that I'm not good at writing these stuff.
How about a link if you're still interested in all of those jargons and want to set up a robust backend app?

GitHub logo ngduc / node-rem

Node REM - NodeJS Rest Express MongoDB and more: typescript, passport, JWT, socket.io, HTTPS, HTTP2, async/await, nodemailer, templates, pagination, docker, etc. Live Demo: https://node-rem-ngduc.vercel.app

Node REM

NodeJS Rest Express MongoDB (REM) - a production-ready lightweight backend setup.

Build Status Maintainability

Live Demo (login with a test user: user1@example.com, user111 - inspect API calls to learn more)

🌟 It rains cats and dogs features:

  Typescript      Express   CORS     Helmet    DotEnv   joi (validation)   forever
  Mongoose        Passport  JWT      Await
  Tslint          Apidoc    Docker   Husky    Morgan    Travis   Unix/Mac/Win (Powershell)
  Tests
            Mocha  Chai     Sinon    istanbul
  MORE
            HTTPS           HTTP2 (spdy)      Socketio 2.1       Init DB Data
            Slack message   Nodemailer        Mailgun            Email Templates    Forgot Password
            VSCode Debug    Dependabot        Codacy             File upload (multer)
      API
            API response    (data, meta: limit, offset, sort)    Transform res
            apiJson         Pagination query
            Regex query     Whitelist fields in response         Populate deep fields
            mstime          API response time     Stack trace in Response
      UI Example
            CRA, Typescript, React-router, Axios, PostCSS, Tailwind. Components: Login, Home, ItemView.
            Portable-react

📦 Installation

Require: MongoDB and NodeJS v8.12.0 +

Clone this project:

git clone https://github.com/ngduc/node-rem.git your-app
…

Hope you find it useful. Drop me a line below if you have questions/feedbacks.
Thanks!

Top comments (1)

Collapse
 
nirmal_kumar profile image
Nirmal

Hi Duc,

Thanks for the contribution of this boilerplate repo.

Do you still use or recommend this repo in 2020?. I quickly tried the repo and i can see some BlueBird and other libraries which may be outdated in 2020. Whats your take?

Moreover, the typescript says require not found. Is this because of old typescript 3.3 is not compatible with NodeJS 10?

Regards
Nirmal