UltraViolent
UltraViolent

Reputation: 99

Express routing error Cannot Get /api/name

Having some trouble setting up the restful API for my express app.

Here is my app.js:

var express = require('express'), 
app = express(),
bodyParser = require('body-parser'), 
methodOverride = require('method-override');
routes = require('./routes'),
api = require('./routes/api'),
port = process.env.PORT || 3000;

app.use(express.static(__dirname + '/public'));
app.use(bodyParser.json());
app.use(methodOverride());
app.use(bodyParser.urlencoded({extended: true}));

// Page Routes
app.get('/', routes.index);
app.get('/partials/:filename', routes.partials);

// // API Routes
app.get('/api/name', api.name);

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

In /routes/api.js I have the following test function:

exports.name = function (req, res) {
    res.json({
       name: 'Test'
    });
};

Currently I get the following error when i go to http://my_ip/api/name Cannot GET /api/name

Any ideas?

Thanks

Upvotes: 3

Views: 16940

Answers (1)

Mukesh Sharma
Mukesh Sharma

Reputation: 9022

The following code is working for me. I think there is some issue with your routes package. Can you share the code of 'routes' package and file structure ?

app.js

var express = require('express'), 
app = express(),
routes = require('./routes');
api = require('./routes/api'),
port = process.env.PORT || 3000;

// Page Routes
app.get('/', routes.index);

// API Routes
app.get('/api/name', api.name);

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

/routes/api.js

exports.name = function (req, res) {
   res.json({
     name: 'Test'
   });
};

/routes.js

exports.index = function (req, res) {
   res.json({
     name: 'Index'
   });
};

Upvotes: 2

Related Questions