Javascript 如何从大型json对象获取特定数据到Jade mixin

Javascript 如何从大型json对象获取特定数据到Jade mixin,javascript,json,node.js,pug,Javascript,Json,Node.js,Pug,这是来自我的服务器的json: data={“id”:393,“state”:“密西西比”,“lat”:null,“lng”:null,“title”:“someTitle”,“country”:null} 然后我将其通过一个玉神庙,如下所示:res.render('editUpload',{fromServer:data}) 在我的翡翠模板中,我有: var data = !{fromServer}; console.log(data.address); 正确打印密西西比河 然而,我正试图让

这是来自我的服务器的json:

data={“id”:393,“state”:“密西西比”,“lat”:null,“lng”:null,“title”:“someTitle”,“country”:null}

然后我将其通过一个玉神庙,如下所示:
res.render('editUpload',{fromServer:data})

在我的翡翠模板中,我有:

var data = !{fromServer};
console.log(data.address);
正确打印密西西比河

然而,我正试图让我的混音器使用这些数据

混合:

mixin textBoxMixin(name, label, value)
    div(style="display:flex; width:100%;")
        span.label #{label}
        input(type="text", name="#{name}", value="#{value}")
然后我用这个:

+textBoxMixin("title", "Title", fromServer)
它在文本框中填充了整个json“{“id”:393,“state”:“mississippi”,“lat”:null,“lng”:null,“title”:“someTitle”,“country”:null}”,因此我尝试了以下方法:

+textBoxMixin("title", "Title", fromServer.title)
它打印“未定义”

我如何让此混音接受来自服务器的
内容。title

我尝试了JSON.stringify(fromServer)、data.address(这显然不起作用,因为在呈现页面时数据是未定义的)。我知道我可以回到我的服务器,解析那里的所有json,并将每个项目作为单个项目传递,但这将是一个巨大的痛苦,因为我的json实际上比我在这里发布的要大得多

问题是,我通过
json.stringify()
将json从route.js文件发送到模板,这让我可以使用
var data=!{fromServer},但Jade无法解析字符串。现在我在路由中这样做,这样我就有了用于模板的json和用于JavaScript的字符串:


当您在mixin定义中引用参数时,您传递参数的方式就像传递普通的帕格代码一样,没有引号和大括号

mixin textBoxMixin(name, label, value)
  div(style="display:flex; width:100%;")
    span.label= label
    input(type="text", name=name, value=value)

+textBoxMixin("title", "Title", fromServer.title)
以下是呈现的内容:


另外,Jade现在是帕格,我知道您知道,既然您在这个问题中标记了帕格,您应该开始将其引用为帕格:)。

首先,您应该这样将密西西比打印到您的文件:第1行:
-var data=fromServer
。第2行:
=data.state
。这只会给我一个值为undefinedhmm的文本框。。我刚刚上传了为我呈现的内容。我必须查看你的整个pug文件。这是github上的最新版本:直接链接到.jade文件。我克隆了你的repo并插入了一个测试文件。我的代码仍然有效。唯一的区别是我传递的数据是一个json对象,而你传递的是一个字符串。可以将其作为json传递吗?否则,您需要在jade模板中执行
JSON.parse()
,我不建议这样做。
mixin textBoxMixin(name, label, value)
  div(style="display:flex; width:100%;")
    span.label= label
    input(type="text", name=name, value=value)

+textBoxMixin("title", "Title", fromServer.title)