javascript - Get variable on client-side from the server-side (express.js, node.js) - Stack Overflow

Server-side:app.get('auth', function(req, res) {res.render('auth.jade', {variable:

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);

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);
Share Improve this question asked Apr 12, 2014 at 13:43 owlowl 4,5014 gold badges26 silver badges28 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 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 municate 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 municate 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
    });
});

The object {variable:true} will only be usable in auth.jade when jade piles 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.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1741976331a4376641.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信