Mati
Mati

Reputation: 781

NodeJS Method not allowed

module.exports.login = function (request, response, next) {
if (request.body.user && request.body.password) {
    response.end('submitted');
} else {
    common.render('login', function (error, file) {
        if (error) {
            next(error);
        } else {
            response.writeHead(200, 'OK', { 'Content-Type': 'text/html' });
            var stream = fs.createReadStream(file);
            stream.pipe(response);
        }
    });
}
};

I am using connect with body-parser. When I first time open this app I see login form - nice, but when I submit a form I see in a console 405 Method not allowed error. I was trying to add some headers but it didn't work. Anyone can help?

Upvotes: 0

Views: 2291

Answers (2)

Mati
Mati

Reputation: 781

I finally solved it. The problem was serve-static and serve-index. It was written some extra headers like allowed methods!

Upvotes: 1

barryto
barryto

Reputation: 11

I believe the syntax should be:

module.exports = function(request, response, next) {
if (request.body.user && request.body.password) {
    response.end('submitted');
} else {
    common.render('login', function (error, file) {
        if (error) {
            next(error);
        } else {
            response.writeHead(200, 'OK', { 'Content-Type': 'text/html' });
            var stream = fs.createReadStream(file);
            stream.pipe(response);
        }
    });
}
};

or

function login(request, response, next) {
if (request.body.user && request.body.password) {
    response.end('submitted');
} else {
    common.render('login', function (error, file) {
        if (error) {
            next(error);
        } else {
            response.writeHead(200, 'OK', { 'Content-Type': 'text/html' });
            var stream = fs.createReadStream(file);
            stream.pipe(response);
        }
    });
}
};
module.exports = login;

Upvotes: 0

Related Questions