Wednesday, 31 May 2017

Can't set headers after they are sent. (nodejs error)

I'm fairly new to Node.js and I am having some issues.

I received the following error when i try to open 127.0.0.1:3000/bejelentkezes:

POST /bejelentkezes 500 550.784 ms - 2259
GET /css/404.css 304 2.751 ms - -
1
sikeres bejelentkezes
Error: Can't set headers after they are sent.
    at ServerResponse.setHeader (_http_outgoing.js:371:11)
    at ServerResponse.header (C:\Users\denes\Documents\e_wallet\node_modules\express\lib\response.js:730:10)
    at ServerResponse.send (C:\Users\denes\Documents\e_wallet\node_modules\express\lib\response.js:170:12)
    at done (C:\Users\denes\Documents\e_wallet\node_modules\express\lib\response.js:967:10)
    at Object.exports.renderFile (C:\Users\denes\Documents\e_wallet\node_modules\pug\lib\index.js:412:12)
    at View.exports.__express [as engine] (C:\Users\denes\Documents\e_wallet\node_modules\pug\lib\index.js:455:11)
    at View.render (C:\Users\denes\Documents\e_wallet\node_modules\express\lib\view.js:128:8)
    at tryRender (C:\Users\denes\Documents\e_wallet\node_modules\express\lib\application.js:640:10)
    at Function.render (C:\Users\denes\Documents\e_wallet\node_modules\express\lib\application.js:592:3)
    at ServerResponse.render (C:\Users\denes\Documents\e_wallet\node_modules\express\lib\response.js:971:7)

This is my code:

var express = require('express');
var router = express.Router();
var tools = require('./adatbazis_v2');

router.get('/', function(req, res, next) {
  res.render('login');
});

router.post('/', function(req,res,next) {
  if (!req.body.email || !req.body.password) {
    console.log('valami nincs kitoltve');
  } else {
      tools.checkUser(req.body.email, req.body.password, function(callback) {
        if(callback == 1){
          console.log("sikeres bejelentkezes");
          res.render('index');
        } else {
          console.log('sikertelen bejelentkezes');
          res.render('login');
        }
      });
    }
});

module.exports = router;

and this is the function:

checkUser: function (felhasznalonev, jelszo, callback) {

      connection.connect(function(err) {
        if (err) {
          console.error('error connecting: ' + err.stack);
          return;
        }
      });

      connection.query('SELECT COUNT(*) AS szamlalo FROM felhasznalok WHERE fhsz_email="' +
      felhasznalonev + '" AND fhsz_jelszo= "' + md5(jelszo) +'";', function (error, results, fields) {
        console.log(results[0].szamlalo);
        callback(results[0].szamlalo);
      });

      connection.close();
  }

I apologize for my English mistakes and thank u for helping.



via G3ph4z

No comments:

Post a Comment