https://github.com/w3cj/express-api-starter
Includes API Server utilities:
- morgan
- HTTP request logger middleware for node.js
- helmet
- Helmet helps you secure your Express apps by setting various HTTP headers. It's not a silver bullet, but it can help!
- dotenv
- Dotenv is a zero-dependency module that loads environment variables from a
.env
file intoprocess.env
- Dotenv is a zero-dependency module that loads environment variables from a
Development utilities:
- nodemon
- nodemon is a tool that helps develop node.js based applications by automatically restarting the node application when file changes in the directory are detected.
- eslint
- ESLint is a tool for identifying and reporting on patterns found in ECMAScript/JavaScript code.
- mocha
- ☕️ Simple, flexible, fun JavaScript test framework for Node.js & The Browser ☕️
- supertest
- HTTP assertions made easy via superagent.
npm install
npm run lint
npm run test
npm run dev
npm install passport-azure-ad
(Resource Manager Template - ARM)(https://docs.microsoft.com/en-us/azure/container-instances/container-instances-multi-container-group)
az deployment group create -g myRG -f acig-web-mongo-arm.json
- 3 containers (2 web, 1 mongo):
- 1 public web port, 1 private web port, 1 private mongodb port
- 1 container mongo
- 1 public mongo port - require authentication
Admin root
use admin
db.createUser({ user: "username", pwd: "password", roles: ["root"] })
DB dbOwner
use mydb
db.createUser({ user: "username", pwd: "password", roles: ["dbOwner"] })
- Mongo start arm:
"command": [ "mongod", "--dbpath=/aci/data", "--bind_ip_all" ]
- connectionString:
mongodb://myaci.eastus.azurecontainer.io/?retryWrites=true
- Mongo start arm:
"command": [ "mongod", "--dbpath=/aci/data", "--bind_ip_all", "--auth" ]
- connectionString:
mongodb://username:password@myaci.eastus.azurecontainer.io/?authSource=mydb&retryWrites=true