How to Pass an Object to client Javascript - NodeJ

2019-02-20 07:55发布

I'm having a little bit problems, I'm trying to send an object to use on my Javascript client side, whenever I render the view. I am sending it this way (Im using Handlebars)

  > locations=[ {
    >               local:"my_local",                    
    >                desc:"myDesc"                  
    >               }]; 

res.render('myView', { locaciones:locaciones });

// Then in my view Inside a script tag i try to get that var and print it

<script>
  var myObj='{{locations}}';
   console.log(locations);
</script>

the result is this :

[object]

and I can't use any property of it because it's undefined

2条回答
叼着烟拽天下
2楼-- · 2019-02-20 08:49

You can send your object as a string.

Like locations = JSON.stringify({local:"my_local",desc:"myDesc"});

And on client side you can parse it to get an Object

Like loc = JSON.parse(locations);

Now you can use loc as Object.

查看更多
▲ chillily
3楼-- · 2019-02-20 08:54

I know this is an old post but in case others are looking for an easy way to pass an object from the server to the client in nodejs here's how I do it.

On the server I do something like:

res.render('my_page',{'my_object': my_object});

Then on the client side in my jade I'd do:

-var name = my_object.name;

(assuming there's a "name" property in my_object)

Then just use it however you need it.

Like:

p Hello #{name}
查看更多
登录 后发表回答