Runs the app in the development mode.
Builds the app for production to the dist folder.
Runs the app for production in the dist folder.
docker build -t mongo-simple-modular-sample .docker run -p 8080:8080 mongo-simple-modular-sampledocker run -p 8080:8080 -e MONGODB_URI="mongodb+srv://dbUser:Demoaccount1@projectdemo.g0lah.mongodb.net" mongo-simple-modular-samplegcloud run deploy mongo-simple-service \ --image us-central1-docker.pkg.dev/<your-project-id>/node-repo/mongo-simple-modular-sample \ --platform managed \ --region us-central1 \ --allow-unauthenticated \ --port 8080 \ --set-env-vars MONGODB_URI="mongodb+srv://dbUser:Demoaccount1@projectdemo.g0lah.mongodb.net"Architecture with standard features: config, health check, logging, middleware log tracing, data validation
In the below sample, search users with these criteria:
- get users of page "1", with page size "20"
- email="tony": get users with email starting with "tony"
- dateOfBirth between "min" and "max" (between 1953-11-16 and 1976-11-16)
- sort by phone ascending, id descending
{ "page": 1, "limit": 20, "sort": "phone,-id", "email": "tony", "dateOfBirth": { "min": "1953-11-16T00:00:00+07:00", "max": "1976-11-16T00:00:00+07:00" } }GET /users/search?page=1&limit=2&email=tony&dateOfBirth.min=1953-11-16T00:00:00+07:00&dateOfBirth.max=1976-11-16T00:00:00+07:00&sort=phone,-id
In this sample, search users with these criteria:
- get users of page "1", with page size "20"
- email="tony": get users with email starting with "tony"
- dateOfBirth between "min" and "max" (between 1953-11-16 and 1976-11-16)
- sort by phone ascending, id descending
- total: total of users, which is used to calculate numbers of pages at client
- list: list of users
{ "list": [ { "id": "ironman", "username": "tony.stark", "email": "tony.stark@gmail.com", "phone": "0987654321", "dateOfBirth": "1963-03-24T17:00:00Z" } ], "total": 1 }- GET: retrieve a representation of the resource
- POST: create a new resource
- PUT: update the resource
- PATCH: perform a partial update of a resource, refer to service and mongo
- DELETE: delete a resource
To check if the service is available.
{ "status": "UP", "details": { "mongo": { "status": "UP" } } }[ { "id": "spiderman", "username": "peter.parker", "email": "peter.parker@gmail.com", "phone": "0987654321", "dateOfBirth": "1962-08-25T16:59:59.999Z" }, { "id": "wolverine", "username": "james.howlett", "email": "james.howlett@gmail.com", "phone": "0987654321", "dateOfBirth": "1974-11-16T16:59:59.999Z" } ]GET /users/wolverine{ "id": "wolverine", "username": "james.howlett", "email": "james.howlett@gmail.com", "phone": "0987654321", "dateOfBirth": "1974-11-16T16:59:59.999Z" }{ "id": "wolverine", "username": "james.howlett", "email": "james.howlett@gmail.com", "phone": "0987654321", "dateOfBirth": "1974-11-16T16:59:59.999Z" }- status: configurable; 1: success, 0: duplicate key, 4: error
{ "status": 1, "value": { "id": "wolverine", "username": "james.howlett", "email": "james.howlett@gmail.com", "phone": "0987654321", "dateOfBirth": "1974-11-16T00:00:00+07:00" } }- Request:
{ "id": "wolverine", "username": "james.howlett", "email": "james.howlett", "phone": "0987654321a", "dateOfBirth": "1974-11-16T16:59:59.999Z" }- Response: in this below sample, email and phone are not valid
{ "status": 4, "errors": [ { "field": "email", "code": "email" }, { "field": "phone", "code": "phone" } ] }PUT /users/wolverine{ "username": "james.howlett", "email": "james.howlett@gmail.com", "phone": "0987654321", "dateOfBirth": "1974-11-16T16:59:59.999Z" }- status: configurable; 1: success, 0: duplicate key, 2: version error, 4: error
{ "status": 1, "value": { "id": "wolverine", "username": "james.howlett", "email": "james.howlett@gmail.com", "phone": "0987654321", "dateOfBirth": "1974-11-16T00:00:00+07:00" } }Perform a partial update of user. For example, if you want to update 2 fields: email and phone, you can send the request body of below.
PATCH /users/wolverine{ "email": "james.howlett@gmail.com", "phone": "0987654321" }- status: configurable; 1: success, 0: duplicate key, 2: version error, 4: error
{ "status": 1, "value": { "email": "james.howlett@gmail.com", "phone": "0987654321" } }DELETE /users/wolverine1To check if the service is available
{ "status": "UP", "details": { "mongo": { "status": "UP" } } }
