HI Alex,

*Is this any way to return value instead on a console.*

 let getDatav=  getExternalLocation(args, function(err, rows) {

            console.log(err);

            return rows;

    });


     console.log(getDatav); 

*###*

>  getExternalLocation(args, function(err, rows) {

            console.log(err);

            console.log(rows);

    });



On Tuesday, July 4, 2017 at 1:54:19 AM UTC+5:30, Alex Wells wrote:
>
> Hi Sushil,
>
> Why would you expect it to? Where in your function 'getExternalLocation' 
> do you see the word "return"?
>
>     var userData = getExternalLocation(args, function(err, rows) {});
>
>
> In order to move forward, you need to understand the difference between 
> procedural and functional programming.
>
> by default, JavaScript functions return 'void', which is what you're 
> getting in 'userData' variable. You are however supplying a 'function' 
> (which takes two parameters, 'err', and 'rows') but which is anonymous, to 
> the function you're calling, 'getExternalLocation'.
>
> Take another look at the body of getExternalLocation, the function you 
> supply when you call it, is called 'cb', and on the line:
>
>             cb(err, rows);          
>>
>>
> you call the anonymous function you supplied earlier with the results of 
> your MSSQL query. The upshot of all this is that in the function body of 
> the anonymous function you supply to the 'getExternalLocation' function, 
> you will have the results you need, so you're anonymous function should 
> look like this:
>
>     getExternalLocation(args, function(err, rows) {
>
>             console.log(err);
>
>             console.log(rows);
>
>     });
>
>
> at this stage, the results you require will be there. You need to try and 
> understand how you're then going to call the callback in the parameters to 
> the exported function here:
>
>
> exports.eejsBlock_editbarMenuLeft = function (hook_name, args, cb) {
>
>
> In order to understand how to get the results of your work out to the rest of 
> your application. This is, in my understanding the hardest thing to 
> understand about JS, so ask questions, work on it a lot, have a look at 
> callback pyramids, the Async library, and finally try and understand promises
>
> Promises are the de-facto way to do things now, so in a lot of ways you may 
> as well jump straight to using those - but it's definitely good to understand 
> the function passing style of JavaScript as a general concept.
>
> Cheers,
> Alex
>
>
> On Sunday, 2 July 2017 01:06:46 UTC+1, Sushil Kumar Kishan wrote:
>>
>> I want to return database value in node js and pass as a variable in ejs 
>> file.
>>
>> Bellow is the code, Which I used. *it did not return value.*
>>
>> function getExternalLocation(cb) {  
>>
>>     mssql.connect(msSqlSettings, function (err ) { 
>>         if (err) {
>>             cb(err);
>>         }       
>>         var getQuery = "SELECT [Title] FROM [dbo].[StyleTemplates] " ;
>>         //console.log(getQuery);
>>         var request = new mssql.Request();          
>>         // query to the database and get the data   
>>
>>         request.query(getQuery, function (err, rows) {
>>             mssql.close();  
>>             cb(err, rows);          
>>         });
>>     }); 
>> } exports.eejsBlock_editbarMenuLeft = function (hook_name, args, cb) {
>>
>>     var userData = getExternalLocation(args, function(err, rows) {});
>>     args.content = args.content + 
>> eejs.require('ep_resources/templates/editbarButtons.ejs', {userData : 
>> **userData** });
>>     return cb();
>> })
>>
>> *Userdata* did not return any value;
>>
>

-- 
Job board: http://jobs.nodejs.org/
New group rules: 
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/7e401bde-fa78-459f-bda8-13b9182a8bc6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to