4

Server-side:

app.get('/auth', function(req, res) {
    res.render('auth.jade', {
        variable: true
    });
});

How to get variable 'variable' on client-side from the server side?

I tried:

alert(variable);

2 Answers 2

7

You can't get server-side variable in a node application in client-side javascript in a browser window directly. Although they support the same programming language, they're just two different runtimes.

your question is about how client side javascript can communicate server-side resources like /auth. options are:

Provide your data in script tag on your web page rendered by jade template. for example:

html(lang="en")
  head
    title= pageTitle
  script(type='text/javascript').
    var generatedData = {variable:true}
body

Then you can use alert(generatedData) to get it. notice that the data has to be serializable data without any function or reference.

Usually people use JSON which means you need to write some client side code to communicate with server-side resource. like using jQuery in client side:

$.get('/auth').done(function(data){ alert(data); });

With server-side code where it sends data in JSON by express response object automatically:

app.get('/auth', function(req, res) {
    res.send({
        variable: true
    });
});
Sign up to request clarification or add additional context in comments.

Comments

0

The object {variable:true} will only be usable in auth.jade when jade compiles it. You can add it to a hidden element and read it using client-side javascript, or perhaps better, get it as json from an ajax-call.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.