Skip to content

hlthi/sample_node_api

Repository files navigation

heroku

  • install heroku client (for mac, brew install heroku/brew/heroku)
#clone git clone https://github.com/hlthi/sample_node_api.git # login heroku login # create heroku create # push code git push heroku master # ensure least one instance of the app is running heroku ps:scale web=1 

fast test with heroku

https://calm-badlands-49165.herokuapp.com/

  • Heroku app can sleep, test now or please deploy yourself
curl --request POST \ --url https://calm-badlands-49165.herokuapp.com/ \ --header 'content-type: application/json' \ --data '{ "startDate": "2017-01-26", "endDate": "2018-02-02", "minCount": 2700, "maxCount": 3000 }' 

local

This project developed with Nodejs v12.10.0 for using latest node features. Default port is 3061 or you can define port with process.env.PORT.

# ensure install same version nvm install v12.10.0 # check node version # v12.10.0 node -v # https://yarnpkg.com/lang/en/docs/install # probably not important but, let's use the same version anyway # 1.17.3 yarn -v # install packages yarn # start yarn start # fast test with curl curl --request POST \ --url http://localhost:3061/ \ --header 'content-type: application/json' \ --data '{	"startDate": "2017-01-26",	"endDate": "2018-02-02",	"minCount": 2700,	"maxCount": 3000 }' 

test

Make sure you do everything written above (LOCAL)

yarn test 

Features

  • Code formatting -> prettier , eslint
  • Test -> Jest , Supertest
  • Validation -> @hapi/joi
  • Error messages -> @hapi/boom

Thoughts

  • Some systems return 200 in each case. Some systems return 200 in each case. I think it is against the HTTP code determined by years of experience.

File Tree

.src ├── ResultModel.js --> Prepare result body ├── app.js --> start server ├── db.js --> prepare the database ├── error-mw.js --> main error middleware ├── index.js --> starting point of the program ├── main-mw.js --> main post middleware ├── test │   ├── db.test.js --> test db │   └── app.test.js --> integration test └── validator.js --> request validation 

Notes

  • read app.test.js to see all error messages
  • babel.config.js using for jest

About

Sample node api with latest node features

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published