RasMason
RasMason

Reputation: 2212

express route causes 404

Having issues with the express router

I'm getting a 404 for the login route, so it must be how I've initialised my routes?

I'm not handling "/" but I'm not sure how to??

My index file:

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var blogRoutes = require('./routes/blogs');
var loginRoute = require('./routes/login');

var port = process.env.PORT || '3000';
var http = require('http');
app.set('port', port);


var server = http.createServer(app);
server.listen(port);

mongoose.connect(myInfo);

app.set('view engine', 'hbs'); //Templating engine (HandleBars)
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
  extended: false
}));

app.use(function(req, res, next) {
  res.setHeader('Access-Control-Allow-Origin', '*');
  res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
  res.setHeader('Access-Control-Expose-Headers', 'Authorization');
  res.setHeader('Access-Control-Allow-Methods', 'POST, GET, PATCH, DELETE, OPTIONS');
  next();
});
//ROUTES
//Handle specific routes first
app.use('/blogs', blogRoutes);
app.use('/login', loginRoute);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  return res.render('404');
});

module.exports = app;

my login.js Just a simple logging for now:

var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) {
  console.log("LOG::::::::::::::::::::::::::")
});

And in Angular:

login(email, password) {
    return this.http.post(this.blogsURL + 'login', {email:email, password:password} )
    .map((res) => {
      console.log(res)
      return res;
    })

Any pointers?

Upvotes: 0

Views: 90

Answers (2)

RasMason
RasMason

Reputation: 2212

Apologies, I made a noobie error and didn't subscribe to the login function in the component

 this.authService.login(email, password)
    .subscribe(data=>console.log(data));

Thanks for your help

Upvotes: 0

Chidi Williams
Chidi Williams

Reputation: 399

You are sending a POST call to a GET route /login.

(I'm sorry. I don't have enough reputation to comment.)

Upvotes: 2

Related Questions