30/09/2018, 18:27

Tạo và deploy app trên heroku (node.js)

Mình là newbie, từng gặp rất nhiều khó khăn khi tiếp xúc với heroku. Nay mình post bài này để các bạn chưa biết tham khảo. Các đại ca góp ý chứ đừng chém nhé.

Những điều cần thiết:

  • Biết sơ sơ về git (biết clone, add, commit,push vậy là đủ rồi)
  • Biết sơ sơ về Node.js (biết cài node, sử dụng npm install, run)
  • Tạo một tài khoản Heroku

Thực hiện:
Step 1: Chuẩn bị các thứ liên quan

  • Cài Node.js: (Vì ví dụ mình dùng node nên đương nhiên phải cài node)
    Vào trang https://nodejs.org/en/ tải node for window về cài vào.
  • Cài express-generator: (Cái này là framework giúp minh tạo một trang web nhanh, đúng chuẩn)
    Sau khi cài Node.js xong (có thể cần restart) bật PowerShell lên gõ:
    npm install express-generator -g
  • Cài Heroku Toolbelt
    Vào trang sau tải về và cài đặt: https://devcenter.heroku.com/articles/getting-started-with-nodejs#set-up

Step 2: Tạo trang web trên local

  • Dùng PowerShell tìm đến nơi cần đặt thư mục bằng lệnh cd
  • Gõ: express ten_website express sẽ sinh ra một thư mục là ten_website trong đó có views, routers…
  • cd ten_website để vào thư mục này

Step 3: Tạo trang web trên Heroku và gắn với local

  • Đăng nhập heroku:
    Gõ: heroku login và nhập emailpassword đăng nhập vào.
  • Tạo project trên heroku:
    Gõ: heroku apps:create ten_website
  • Gắn thư mục hiện tại vào project đã tạo trên heroku
    Gõ: heroku git:remote -a ten_website

Step 4: Cập nhật trang web và upload lên Heroku

  • Gõ: git add . để thêm những thay đổi mới vào lần commit này
  • Gõ: git commit -am "chu thich cho lan commit nay" để commit những thay đổi và chú thích cho lần này
  • Gõ: git push heroku master

Vậy là xong. Đợi lệnh trên chạy xong là website đã có thể chạy. Bạn có thể gõ heroku open để mở trang web trên browser. Nếu bạn có nhiều app thì cần gõ heroku open --app ten_website
Từ nay, sau khi bạn edit trên local xong chỉ cần tìm đến thư mục ten_website thực hiện Step 4 là có thể upload lên heroku, đôi khi cần login lại.

Mai Anh Dũng viết 20:38 ngày 30/09/2018

Cảm ơn bài hướng dẫn chi tiết nhé.

Mà có link sản phẩm không share xem thử, Đạt cũng muốn xài thử heroku xem thế nào

Thấy startup của thằng bạn dùng Heroku, muốn thử mà chưa có dịp.

Nguyen Ca viết 20:27 ngày 30/09/2018

Cái heroku này hay cái là có thể kết nối để github/dropbox, khi push lên github/dropbox, heroku nó tự deploy cho mình.

Cao Chí Tâm viết 20:36 ngày 30/09/2018

Demo thì không cần đâu bạn. Demo thì nó cũng ra một cái trang Có ghi chữ “Welcome to Express” thôi chứ đâu có gì đâu mà xem.
Cũng tranh thủ gõ mấy dòng như hướng dẫn thì được cái app cho bạn đây:
https://demo-for-ltd.herokuapp.com/

Mai Anh Dũng viết 20:27 ngày 30/09/2018

Wow, demo nhanh gọn lẹ quá Cái heroku app này mình có được dùng miễn phí không nhỉ?

Cao Chí Tâm viết 20:32 ngày 30/09/2018

Quá miễn phí luôn. Có cả thứ rất hữu dụng là custom domain để trỏ domain của mình vào (dùng bảng ghi CNAME). Ngoài ra thì blah blah… đủ thứ học hoài không hết.

Ba Phi viết 20:36 ngày 30/09/2018


Mấy bữa trước thấy đâu trên youtube có tut dùng heroku với node.js trên rasberry Pi thì phải. Cool!

Nam viết 20:39 ngày 30/09/2018

đánh dấu.
cái này hôm bữa mình đên bước push lên mà nó toàn bị lỗi gì ý. tìm mãi mà không được.
tức quá dùng vps luôn.

Cao Chí Tâm viết 20:43 ngày 30/09/2018

Thường có 2 trường hợp lỗi là không nhập lệnh remote (heroku git:remote -a ten_website), trường hợp nữa là app đã tạo không đúng - không chạy được nên không deploy được.

Hien Vinh Nguyen viết 20:33 ngày 30/09/2018

Ứng dụng chạy tốt trên Local nhưng deloy lên Heroku thì bị lỗi thế này, fix thế nào các bác??

Error: ENOENT: no such file or directory, open 'libmecab.so' 2016-08-06T04:39:57.166302+00:00 app[web.1]: at Error (native) 2016-08-06T04:39:57.166303+00:00 app[web.1]: at Object.fs.openSync (fs.js:584:18) 2016-08-06T04:39:57.166304+00:00 app[web.1]: at fs.readFileSync (fs.js:431:33) 2016-08-06T04:39:57.166304+00:00 app[web.1]: at new DynamicLibrary (/app/node_modules/ffi/lib/dynamic_library.js:67:21) 2016-08-06T04:39:57.166306+00:00 app[web.1]: at Object.<anonymous> (/app/node_modules/mecab-ffi/lib/index.coffee:19:16)

cpt viết 20:30 ngày 30/09/2018

Trước có nghịch socketIO để host trên heroku https://war-of-snakes.herokuapp.com/ mà ping ghê quá nên bỏ

Thôi Bỏ Đi viết 20:28 ngày 30/09/2018

đào tí
https://livechat111.herokuapp.com/

k chạy được bác ơi :’(

Thôi Bỏ Đi viết 20:28 ngày 30/09/2018

plz help me :’( :’( :’(

Thôi Bỏ Đi viết 20:28 ngày 30/09/2018

đã làm đc :D, tại để port tĩnh trong code nên nó thế
làm theo bài này là đc

Hoàng Web – 19 Aug 14

Cài đặt node.js socket.io lên heroku server - Hoàng Web

Nội dung0.1 Tạo ứng dụng node.js trên local1 Thiết kế website cho khách sạn1.1 Chạy ứng dụng Node1.2 Backup & Tải mã nguồn của ứng dụng trên heroku Facebook Twitter Google+ Trong bài trước mình có giới thiệu về heroku và cách tạo ứng dụng miễn phí...

NTC viết 20:41 ngày 30/09/2018

bạn chỉ cho mình chỗ chỉnh port tĩnh này được không…link die mất rồi

Thôi Bỏ Đi viết 20:29 ngày 30/09/2018
var port = Number(process.env.PORT || 8888);
server.listen(port, function () {
    console.log("server is runing on localhost:8888");
});

nếu chạy trên localhost thì port sẽ là 8888, nếu push lên heroku thì port sẽ tự nhảy theo heroku , bạn thử đi

VietNam viết 20:32 ngày 30/09/2018

có ai mua gói 7$ trên heroku này chưa, cho xin ít review với :v

KYNDY viết 20:29 ngày 30/09/2018

Đã thành công… Bạn nào lỗi ở bước heroku git:remote -a ten_website thì gõ git init rồi gõ lại nhé … Cám ơn chủ thớt nhiều ạ… Rất bổ ích

Huỳnh Tuấn Anh viết 20:28 ngày 30/09/2018

Có ai biết làm thế nào để link đến 1 file html mà mình viết đc không ạ? 1 web tĩnh ạ. . .

Nguyễn Thành Công viết 20:34 ngày 30/09/2018

bạn hướng dẫn tạo database và kết nối database trên heroku đi ?

Nguyễn Tuấn Anh viết 20:27 ngày 30/09/2018

dùng PHP để require file HTML nhé

Bài liên quan
0