Search code examples
terminalgettwilioibm-cloud

"Cannot GET / " IBM Bluemix and twilio


I want to create an app which uses twilio through IBM Bluemix, but I get this message when I open my route: Cannot GET /

I think there is something wrong in the app.js code, because I just followed some tutorials, but they all don't work :(

// /*eslint-env node*/

// //------------------------------------------------------------------------------
// // node.js starter application for Bluemix
// //------------------------------------------------------------------------------

// // This application uses express as its web server
// // for more info, see: http://expressjs.com
// var express = require('express');

// // cfenv provides access to your Cloud Foundry environment
// // for more info, see: https://www.npmjs.com/package/cfenv
// var cfenv = require('cfenv');

// // create a new express server
// var app = express();

// // serve the files out of ./public as our main files
// app.use(express.static(__dirname + '/public'));

// // get the app environment from Cloud Foundry
// var appEnv = cfenv.getAppEnv();

// // start server on the specified port and binding host
// app.listen(appEnv.port, '0.0.0.0', function() {

//  // print a message when the server starts listening
//   console.log("server starting on " + appEnv.url);
// });

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

var port = (process.env.VCAP_APP_PORT || 3000);

// Pull in Twilio config from the BlueMix environment
// The VCAP_SERVICES environment variable contains a JSON string with all your
// Bluemix environment data
var config = JSON.parse(process.env.VCAP_SERVICES || "{}");

// Loop through user-provided config info and pull out our Twilio credentials
var twilioSid, twilioToken;
config['user-provided'].forEach(function(service) {
    if (service.name == 'Twilio-mario') {
        twilioSid = service.credentials.accountSID;
        twilioToken = service.credentials.authToken;
    }
});

app.get('/message', function (req, res) {
    var client = new twilio.RestClient(twilioSid, twilioToken);

    client.calls.create({
        url: "http://twimlets.com/message?Message%5B0%5D=Twilio%20greeting%20from%20Bluemix!&",


    //client.sendMessage({
        to:'my number',
        from:'twilio number',
        body:'Brooooooklllllynnnn!'
    }, function(err, message) {
        res.send('Message sent! ID: '+message.sid);
    });
});

var server = app.listen(port, function () {
  console.log('Example app started')
});

I'm clueless.... (working with terminal on Mac OSX btw)


Solution

  • You don't have a route to "/", so you will get this error if you try to launch your application like:

    http://myapp.mybluemix.net

    Since you have a "/message" route you can access your application like:

    http://myapp.mybluemix.net/message

    or create a new route to access the app with first URL above:

    app.get('/', function (req, res) {
     // your code here
    });