2012-10-22 33 views
7

Tôi đã viết một ứng dụng node.js cơ bản và tôi đã quản lý để triển khai nó trên Heroku mà không gặp bất kỳ sự cố nào. Tôi đã tạo package.jsonProcfile của mình, tuy nhiên từ nhật ký tôi thấy rằng không có quy trình đang chạy nào, do đó không thể nhận được bất kỳ phản hồi nào. Điều gì có thể là vấn đề?Node.js: Ứng dụng đơn giản không hoạt động trên Heroku

PS: Tôi không muốn sử dụng nhanh khuôn khổ

Mã của tôi:

var http = require("http"); 

http.createServer(function(request, response) { 
    response.writeHead(200, {"Content-Type": "text/plain"}); 
    response.write("Hello World"); 
    response.end(); 

    console.log("I am working"); 
}).listen(8888); 

package.json của tôi:

{ 
    "name": "node-example", 
    "version": "0.0.1", 
    "dependencies": { 
    }, 
    "engines": { 
    "node": "0.8.x", 
    "npm": "1.1.x" 
    } 
} 

Nhật ký:

2012-10-22T12:36:58+00:00 heroku[slugc]: Slug compilation started 
2012-10-22T12:37:07+00:00 heroku[slugc]: Slug compilation finished 
2012-10-22T12:40:55+00:00 heroku[router]: Error H14 (No web processes running) -> GET aqueous-bastion-6914.herokuapp.com/ dyno= queue= wait= service= status=503 bytes= 
2012-10-22T12:50:44+00:00 heroku[router]: Error H14 (No web processes running) -> GET aqueous-bastion-6914.herokuapp.com/ dyno= queue= wait= service= status=503 bytes= 

Trả lời

33

Bạn đã thu nhỏ ứng dụng heroku chưa?

$ heroku ps:scale web=1 

Đây là bước bắt buộc. 1 là số lượng quy trình bạn muốn sinh ra cho ứng dụng của mình.

+1

Bạn cũng có thể thực hiện việc này trong Bảng điều khiển Heroku bằng cách truy cập trang Tài nguyên của ứng dụng và đảm bảo bạn có ít nhất 1 Dyno được phân bổ. (Ngoài ra vấn đề lắng nghe cổng thường đến tiếp theo: http://stackoverflow.com/a/13013189/1310765). – purgatory101

+1

Điều này vừa kết thúc trong 30 phút thất vọng. Cảm ơn bạn :) – connorbode

+0

Điều này không hiệu quả đối với tôi, nhưng một bước nữa đã làm, hãy xem http://stackoverflow.com/a/34749183/537998 –

19

Thay đổi cổng của bạn

từ

.listen(8888) 

để

.listen(process.env.PORT || 8888) 
+0

Tôi chạy nút nền tảng tại Heroku. Trớ trêu thay, câu trả lời thấp nhất này là chính xác. Câu trả lời được chấp nhận và được bỏ phiếu cao nhất sẽ chỉ giúp bạn nếu trước đây bạn đã thu nhỏ quy trình web của mình thành 0 và sẽ không khắc phục được vấn đề trừ khi câu trả lời này cũng được tuân theo. – hunterloftis

2

Có gì bên trong Procfile của bạn? Nó có khớp với tên ứng dụng của bạn không?

$ ls 
app.js Procfile 
$ cat Procfile 
web: node app$ 
$ 
Các vấn đề liên quan