0

I am new in NodeJs I am trying to get response from another function in Node Js. I am calling slug function in Nodejs. I have to get the slug before insert but always I geting response undefined I am used noejs package slugs

var slugs = require("slugs");

I am calling genslug(user.name) like this way .

genslug(connection,slugs(user.name),1,slugs(user.name),callback)

Created one function genslug like this

var genslug = function(connection,slug,counter=1,orgSlug,callback) {
    var query = connection.query('SELECT * FROM users WHERE slug = ?',slug,function(err,res) {
        if(err)
            callback({status: 'error', error : err});
        if(res.length > 0){
            counter++;
            slug = orgSlug+'-'+counter;
            genslug(connection,slug,counter,orgSlug,callback);
        }else{
            callback(false, slug);
        }
    });
}

But always I got undefined. Please response If anyone know this

Raj
  • 439
  • 1
  • 8
  • 28

2 Answers2

0

Understand the callback nature.

First argument always takes as error and second takes as success.

In your case it always execute in error block from were you are calling the function since you are passing else in final callback.

Try to remove false from final callback

var genslug = function(connection,slug,counter=1,orgSlug,callback) {
    var query = connection.query('SELECT * FROM users WHERE slug = ?',slug,function(err,res) {
        if(err)
            callback({status: 'error', error : err});
        if(res.length > 0){
            counter++;
            slug = orgSlug+'-'+counter;
            genslug(connection,slug,counter,orgSlug);
        }else{
            callback(null, slug);
        }
    });
}
abdulbarik
  • 6,101
  • 5
  • 38
  • 59
0
genslug(connection,slugs(user.name),1,slugs(user.name),function(err,resp){
   if(err)
   {
     console.log(err);
   }
   console.log(resp);
})

function genslug(connection,slug,counter=1,orgSlug,callback) {
    var query = connection.query('SELECT * FROM users WHERE slug = ?',slug,function(err,res) {
        if(err)
            callback(err,null);
        if(res.length > 0){
            counter++;
            slug = orgSlug+'-'+counter;
            //genslug(connection,slug,counter,orgSlug); - Callback function can't be call like this
        }else{
            callback(null, slug);
        }
    });
}