如何在node.js中将带有前导零的字符串数作为字符串传递?

时间:2016-08-31 11:30:50

标签: javascript node.js

我有id作为字符串。例如001,002等 虽然渲染页面我简单地传递了id,但是在客户端我收到了例如1,2等等

res.render('leafletDemo',{id:userID,latitude:latitude,longitude:longitude});

我想在客户端将id作为字符串本身。

1 个答案:

答案 0 :(得分:1)

我的猜测是你在模板中有类似的东西将变量从服务器端代码传输到客户端代码:

<script>
  var id = <%= id %>;
  ...
</script>

如果id"001",则呈现为:

<script>
  var id = 001;
  ...
</script>

这使得id的客户端版本成为一个数字。

要使id保持格式正确的字符串,您可以改为使用它:

var id = <%- JSON.stringify(id) %>;

(注意它在<%后使用连字符,而不是等号;这意味着JSON.stringify()的结果不应由EJS进行HTML编码)

这将呈现:

var id = "001";

这就是你想要的。

此方法存在轻微的安全问题,因为如果 userId可以以某种方式从客户端插入,则允许XSS 。如果它只是一个数据库ID,它很可能是正常的。