Objective
Upload a simple NodeJS web API to Heroku without using Docker.
Full example: https://github.com/lucianopereira86/NodeJS-Heroku.
Technologies
Topics
NodeJS
Create a directory for your NodeJS web API.
By running this command in a terminal, create a package.json file:
npm init
Edit the file by adding the following dependencies:
{
...
"dependencies": {
"cors": "^2.8.5",
"express": "^4.16.4"
}
...
}
Create the node_modules folder with this command:
npm install
Create an index.js file containing this code:
const express = require('express');
const app = express();
var cors = require('cors');
app.use(
cors({
credentials: true,
origin: true
})
);
app.options('*', cors());
app.get('/', (req, res) => res.send('Working!!!'));
app.listen(process.env.PORT || 3000, function() {
console.log('server running on port 3000', '');
});
Run the web API with the following command:
node index
Open the browser with the URL below:
http://localhost:3000/
This will be the result:
Your web API is WORKING!
Time to upload it to Heroku.
Heroku
Heroku is a cloud platform that allows applications be hosted at will. It's mostly used for web APIs. Go to Heroku website and sign up or sign in.
In your machine, install the latest version of Heroku CLI here.
In the web API root folder, create a Procfile, which is a Heroku file that specifies the commands that are executed by the app on startup. Write the following line within the file:
web: node index.js
Create a .git folder with this command:
git init
Create a .gitignore manually containing this line:
/node_modules
Your project will look like this:
Authenticate with Heroku by running this command and follow the instructions that will be displayed in the terminal:
heroku login
Run the following command to create a project in Heroku. It will receive a random name but you can change it.
heroku create
Now, run the commands below to commit your web API to Heroku's new project:
git add *;
git commit -m "First commit";
git push heroku master;
The console will show the upload progress like this:
Check if any error has occurred by running:
heroku logs
Finally, open the project by running this command:
heroku open
This will be the result:
Conclusion
We have successfully uploaded our NodeJS web API to Heroku without using Docker.
Also, it was not needed to interact directly with Heroku website to create the app.
Top comments (0)