Express 如何在pug中将字符串呈现为javascript

Express 如何在pug中将字符串呈现为javascript,express,pug,Express,Pug,因此,我使用Express创建了一个MVC应用程序。我有一个电子邮件列表,我想把它放在前端的javascript变量中,并创建一个自动完成 因此,当前控制器如下所示: controller.js res.render('/page',{emails: emails}) 电子邮件是一种JSON结构,如果需要,可以进行字符串化。我的哈巴狗模板如下 div input (type = "text" id="suggestion") div (class = "custom-sugge

因此,我使用Express创建了一个MVC应用程序。我有一个电子邮件列表,我想把它放在前端的javascript变量中,并创建一个自动完成 因此,当前控制器如下所示:

controller.js

res.render('/page',{emails: emails})
电子邮件
是一种JSON结构,如果需要,可以进行字符串化。我的哈巴狗模板如下

div
    input (type = "text" id="suggestion")
    div (class = "custom-suggestion" id="suggestion-list")
最后,我用以下命令覆盖自定义脚本块:

script.
  var emailList = ///////////i want the email from controller's data
我怎样才能做到这一点?只要我能将数据传递到javascript端,任何建议都是相当可观的

编辑 要使代码更清晰,请执行以下操作:

app.js

var app = express();
app.set('view engine', 'pug');
router = express.Router();
router.get('/',function(req,res,next){
    emails = ['abcd@abc.com','def@def.com','123@123.com'];
    res.render('index', {emails:emails})
})
app.use(router);
哈巴狗

extend layout

block content
    h1= title

block scripts
    script
       emails= emails /// not working

       ////////////// how to render this line as 
       ////////////// emails = ['abcd@abc.com','def@def.com','123@123.com'] 
您可以使用来执行此操作:

script.
  emails= !{JSON.stringify(emails)};
请注意,在script标记之后有一个句点,这告诉帕格将标记内的内容视为一个句点。如果没有这个时间段,它将创建一个脚本标记,然后创建一个电子邮件标记(
),这不是您想要的


现在处于纯文本模式,您可以使用内部带有stringify的unescaped插值命令(
!{…}
)将模板变量输出到JavaScript变量中。

尝试添加您尝试过的内容和不起作用的内容。添加错误(如果有)。不
emailList=电子邮件工作?不,
emailList=emails
不工作,这是一个分类项目,所以我不能分享太多,但让我稍后提供一些额外的细节检查这个答案。它有用吗?