- 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
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
}'
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
}'
Make sure you do everything written above (LOCAL)
yarn test
- Code formatting -> prettier , eslint
- Test -> Jest , Supertest
- Validation -> @hapi/joi
- Error messages -> @hapi/boom
- 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.
.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
- read app.test.js to see all error messages
- babel.config.js using for jest