2017-07-21 1 views
0

J'essaie de me mouiller les pieds en mettant en place un simple webhook pour l'interface NLP API.AI de Google. Je veux utiliser Heroku comme serveur utilisant node.js. Le problème est que je peux construire et déployer le code sur Heroku mais l'exécution échoue immédiatement.Simple API.AI node.js webhook se bloque sur Heroku

Extrait du journal de la construction (notez que le « vrai nom » app est teste pas, je viens de changer pour ce poste)

[...] 
2017-07-21T13:28:57.000000+00:00 app[api]: Build succeeded 
2017-07-21T13:29:07.012028+00:00 heroku[web.1]: Starting process with command `npm start` 
2017-07-21T13:29:10.516218+00:00 app[web.1]: 
2017-07-21T13:29:10.516234+00:00 app[web.1]: > [email protected] start /app 
2017-07-21T13:29:10.516235+00:00 app[web.1]: > node app.js 
2017-07-21T13:29:10.516236+00:00 app[web.1]: 
2017-07-21T13:29:11.076809+00:00 heroku[web.1]: State changed from starting to crashed 

J'ai essayé plusieurs versions de code, mais même ce code qui est réduit à peu près rien ne manque à exécuter.

Voici mes app.js:

'use strict'; 

process.env.DEBUG = 'actions-on-google:*'; 
const ApiAiApp = require('actions-on-google').ApiAiApp; 

const test = function(request, response) { 
// todo 
}; 

module.exports = { 
    test 
}; 

Et ceci est le fichier package.json:

{ 
    "name": "test", 
    "description": "virtual scrum master", 
    "version": "0.0.3", 
    "private": true, 
    "license": "Apache Version 2.0", 
    "author": "Google Inc.", 
    "scripts": { 
    "lint": "semistandard --fix \"**/*.js\"", 
    "start": "node app.js", 
    "monitor": "nodemon app.js", 
    "deploy": "gcloud app deploy" 
    }, 
    "engines": { 
    "node": "6.11.1" 
    }, 
    "dependencies": { 
    "actions-on-google": "^1.0.0"  
    }, 
    "devDependencies": { 
    "semistandard": "^9.1.0" 
    } 
} 

Répondre

0

Après un journal de la recherche que j'ai trouvé la configuration correcte.

Voici le code app.js correct:

'use strict'; 

process.env.DEBUG = 'actions-on-google:*'; 
let Assistant = require('actions-on-google').ApiAiAssistant; 
let bodyParser = require('body-parser'); 

let app = express(); 
app.use(bodyParser.json({type: 'application/json'})); 

app.post('/', function (req, res) { 

// Todo 

}); 

if (module === require.main) { 
    // Start the server 
    let server = app.listen(process.env.PORT || 8080, function() { 
    let port = server.address().port; 
    console.log('App listening on port %s', port); 
    }); 
} 

module.exports = app;