2016-06-25 1 views
0

これでherokuにnodejsアプリケーションをデプロイしようとしています。私がチェックしているスクリプトがありません:herokuにnodejsをデプロイするときに開始します

2016-06-25T12:27:58.216435+00:00 heroku[web.1]: Starting process with command `npm start` 
2016-06-25T12:28:00.503447+00:00 app[web.1]: npm ERR! argv "/app/.heroku/node/bin/node" "/app/.heroku/node/bin/npm" "start" 
2016-06-25T12:28:00.502867+00:00 app[web.1]: npm ERR! Linux 3.13.0-85-generic 
2016-06-25T12:28:00.504156+00:00 app[web.1]: npm ERR! npm v3.8.6 
2016-06-25T12:28:00.503707+00:00 app[web.1]: npm ERR! node v5.11.1 
2016-06-25T12:28:00.506550+00:00 app[web.1]: npm ERR! missing script: start 
2016-06-25T12:28:00.506746+00:00 app[web.1]: npm ERR! 
2016-06-25T12:28:00.506912+00:00 app[web.1]: npm ERR!  <https://github.com/npm/npm/issues> 
2016-06-25T12:28:00.516583+00:00 app[web.1]: 
2016-06-25T12:28:00.516795+00:00 app[web.1]: npm ERR! Please include the following file with any support request: 
2016-06-25T12:28:00.516913+00:00 app[web.1]: npm ERR!  /app/npm-debug.log 
2016-06-25T12:28:00.506796+00:00 app[web.1]: npm ERR! If you need help, you may report this error at: 
2016-06-25T12:28:00.505628+00:00 app[web.1]: 
2016-06-25T12:28:01.445657+00:00 heroku[web.1]: Process exited with status 1 
2016-06-25T12:28:01.461079+00:00 heroku[web.1]: State changed from starting to crashed 
2016-06-25T12:28:01.461867+00:00 heroku[web.1]: State changed from crashed to starting 
2016-06-25T12:28:04.433811+00:00 heroku[web.1]: Starting process with command `npm start` 


は、私はまたProcfile

しかし、私のダイナモは、まだ次のログのエラーでクラッシュにweb: rm -r -f database/test.db && node app.jsを追加したpackage.json

"scripts": { 
    "test": "./node_modules/.bin/mocha -r mocha-cakes", 
    "start": "rm -r -f database/test.db && node app.js", 
    "start-win": "del database\\test.db && node app.js" 
} 

に起動スクリプトを定義しています他のSOの質問と答えのどれも私の問題を解決していません。私は他の投稿が推奨しているすべてを試しましたが、まだ成功していません。それらが存在していない場合は、テーブルを作成した後/database/database.jsファイルで

Here is the link to my repo if you want to see the source code.

+0

あなたの 'procfile'はどこですか? – Gintoki

+0

@Johnそれはアプリケーションのルートにあります。 (package.jsonファイルと同じ場所) – HPSS

+0

どのような種類のDBを使用していますか? – sznrbrt

答えて

0

、そのXMLファイルを読み込み、db.runクエリがあります。

db.run('INSERT OR IGNORE INTO managers (username, password) VALUES ("admin","admin")', function(){ 
    // 
    // Dear fellow coder: 
    // 
    // Once you are done trying to 'optimize' this routine, 
    // and have realized what a terrible mistake that was, 
    // please increment the following counter as a warning 
    // to the next guy: 
    // 
    // total_hours_wasted_here = 3 
    // 
    // When I wrote this, only God and I understood what I was doing 
    // Now, God only knows 
    // 
    // Magic, Do not touch 

    //initialise the table values from log file 
    // I want to read the xml file after the database tables have been created. HACK HACK!!! 
    $this.readLogFile(); 
    console.log('Loaded Data from XML document'); 
});  

デプロイされたコードでテストしている理由以外に、どういう理由がわかりません。デプロイされたDBを削除したい理由は、テストに必要なだけだからです。

Herokuはrm -r -f database/test.dbが好きではないようですので、展開のためにこれをコメントするか、より洗練されたソリューションとして、このDBクエリを呼び出す前にifステートメントを追加することをお勧めします。ブール値true。開始スクリプトからrm -r -f database/test.dbも削除する必要があります。

アプローチのもう1つの問題は、開始スクリプトがXMLファイルをインポートする前でも実行されるため、開始スクリプト内のdbを使用して操作すると削除されません。

代わりに、サーバーを起動するたびにapp.jsで呼び出すクエリを作成することもできます。そのクエリはDB全体を空にする必要があります。しかし、それを読んで削除する理由は、まったく読めないときだけです。

+0

ご返信ありがとうございます。私たちのグループプロジェクトでは、xmlファイルからデータをロードすることが必要でした。私の選択ではありませんでした。ユーザーがイベントを実行するたびに、logFileが更新されるので、システムを再デプロイするときにlogFileからデータを読み取り、最新のものにできるようにする必要があります。私はそれが最もエレガントな解決策ではないことを知っていますが、それが提出前にできることはすべてです。 – HPSS

+1

私は今参照してください。開始スクリプトの 'rm -r -f database/test.db'を' heroku pg:reset DATABASE'に変更してください。 – sznrbrt

関連する問題