0

一言 で言えば、私がしようとしているのは:

https://expressjs.com/en/starter/hello-world.htmlの非常に基本的なHello-World Express チュートリアルに従おうとしましたが、codeship check_urlフェーズHeroku で適切に読み込まれず、次のエラーが発生します。

    Connecting to intfdsf-dsfdfsdf-323423.herokuapp.com (intfdsf-dsfdfsdf-323423.herokuapp.com)|54.243.89.187|:80... connected.
    HTTP request sent, awaiting response... 503 Service Unavailable
    2016-07-22 02:18:12 ERROR 503: Service Unavailable.

Setup コマンドの下で、次のことを試しました。

    nvm install 0.10
    nvm use 0.10
    npm install

    nvm install 6.3.0
    nvm use 6.3.0
    npm install

どちらも同じように失敗しました。

そして、次のようなものを追加するとnpm start、その行でプロセスがハングします....

Procfile を追加したweb: node server.jsので、ベスト プラクティスのために、app.js を server.js に名前を変更しました。そして最後にengines、私は自分自身で次のように定義しましたpackage.json:

    {
        "name": "node-ship",
        "version": "1.0.0",
        "description": "",
        "main": "server.js",
        "engines": {
            "node": "5.6.x",
            "npm": "3.10.x"
        },
        "scripts": {
            "start" : "node server.js",
            "test": "echo \"Error: no test specified\" && exit 1"
        },
        "repository": {
            "type": "git",
            "url": "git+https://github.com/slfkjsdlfjklsdkfj/node-ship.git"
        },
        "author": "slfkjsdlfjklsdkfj",
        "license": "ISC",
        "bugs": {
            "url": "https://github.com/slfkjsdlfjklsdkfj/node-ship/issues"
        },
        "homepage": "https://github.com/slfkjsdlfjklsdkfj/node-ship#readme",
        "dependencies": {
            "express": "^4.14.0"
        }
    }

私は何が欠けていますか?実行時にローカルで読み込まれるのと同じように、Heroku で適切に Expressjs を読み込むことができるようにします。node app.js

ご協力ありがとうございました。

server.js ファイルも次のとおりです。

    var express = require('express');
    var app = express();

    app.get('/', function (req, res) {
        res.send('Hello World!');
    });

    app.listen(5000, function () {
        console.log('Example app listening on port 5000!');
    });
4

2 に答える 2

1

Heroku はポート環境変数の使用に依存しています。

したがって、server.jsファイルには代わりに次のものが必要です。

var port = process.env.PORT || 5000;

app.get('/', function (req, res) {
    res.send('Hello World!');
});

app.listen(port, function () {
    console.log('Example app listening on port '+ port +'!');
});

var port = ...部分の強調

次に、Procfile が残りの処理を行います。web: node server.js

于 2016-07-23T00:04:33.620 に答える
0

Heroku デプロイのcheck_url最後に Codeship によって実行されるスクリプトはwget、Heroku アプリケーションのルート URL のステータス コードを確認するために使用します。(別の URL を確認したい場合は、[その他のオプション] リンクの後ろに設定が隠されています)。

そのページが 2xx または 3xx の範囲のステータス コードを返す限り、チェックは成功します。

完全なスクリプトについては、https://github.com/codeship/scripts/blob/master/utilities/check_url.shを参照してください。

于 2016-07-25T08:00:37.020 に答える