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/fe21a846-8bc4-480a-90ae-74dd785b2044%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to