Giới thiệu

Heroku là một nền tảng dưới dạng dịch vụ cho phép các nhà phát triển xây dựng, chạy và vận hành các ứng dụng hoàn toàn trong đám mây. Bạn có thể sử dụng dịch vụ hoàn toàn miễn phí với các ứng dụng web không yêu cầu tốc độ truy cập cao hay dung lượng lớn.

Trong bài viết này, chúng ta sẽ:

  • Tạo một dự án trên heroku
  • Cấu hình Git server repository cho phía local
  • Deploy ứng dụng

Tạo App Trên Heroku

https://dashboard.heroku.com/apps

Sau khi đăng ký tài khoản Heroku.  Các bạn nhấn vào nút new tiếp đến chọn create new app nó sẽ hiển thị một form như thế này.

Sau khi điền đầy đủ thông tin để tạo app bây giờ vào phần dashboard để có thể tùy chỉnh app của mình gồm những chức năng chính như: deploy,resources,overview,settings,metrics,...

Cách deploy lên Heroku

Download heroku về máy. Tùy vào hệ điều hành các bạn cài đặt sao cho phù hợp.

Các bước để deploy project lên heroku:
Nếu chạy git rồi thì không cần git init nữa
Mà chỉ cần làm các bước còn lại
heroku login
heroku git: remote -a login-me
git add .
git commit -m"finsh-project"
git push heroku master

click vào nút open app bên trên góc phải màn hình.

Khi các bạn mở app ra thì sẽ thấy nó báo lỗi.

heroku logs để check lỗi

Chỉnh sửa pagekage.json

"scripts": {
    "start": "node index.js",
    "start:dev": "nodemon fileName.js"
},

Chỉnh sửa cổng lắng nghe ứng dụng trên index.js

app.listen(process.env.PORT || 3000, () => {
    console.log(`app is running on port ${process.env.PORT}`);
})

Kết nối mongodb sử dụng MongoDB Atlas

Webiste: https://cloud.mongodb.com Login = account gmail

  • Tạo cluster
  • Connect

Chú ý : connect phải pass qua 2 step Setup connection securityChoose a connection method

  • Chỉnh sử database URL trong index.js
const mongoAtlasUri = "mongodb+srv://anhtbok:87654321@cluster0.i6xzm.mongodb.net/my_database?retryWrites=true&w=majority";

try {
    // Connect to the MongoDB cluster
    mongoose.connect(
        mongoAtlasUri,
        { useNewUrlParser: true, useUnifiedTopology: true },
        () => console.log(" Mongoose blog mindx is connected")
    );
} catch (e) {
    console.log("could not connect");
}

Deploy code lên heroku

$ git add .
$ git commit -am "make it better"
$ git push heroku master
$ heroku open