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

  • Khởi tạo git:
    Gõ: git init
  • Đă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.

11 Likes

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 :smiley:

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

3 Likes

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.

1 Like

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/

2 Likes

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

2 Likes

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. :heart_eyes:

2 Likes

:+1:
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!

3 Likes

đá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.

2 Likes

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.

1 Like

Ứ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)

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

1 Like

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

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

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

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

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

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 :smiley: , bạn thử đi :smiley:

2 Likes

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

Đã 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é :smiley: … Cám ơn chủ thớt nhiều ạ… Rất bổ ích

2 Likes

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 ạ. . .

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

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?