You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pug模板Script标签中处理NodeJS传递的Sequelize对象

解决思路

方法1:利用Sequelize实例的toJSON()方法转普通对象

Sequelize实例自带toJSON()方法,能把实例转换为纯JavaScript对象,再通过JSON.stringify()转成JSON字符串,最后用Pug的!{}语法直接输出(避免HTML转义),前端就能直接拿到可用的对象/数组:

script.
    let keys = !{JSON.stringify(nodejskeys.toJSON())}

如果nodejskeys是Sequelize实例的集合(比如查询返回的数组),直接对整个集合处理也有效:

script.
    let keys = !{JSON.stringify(nodejskeys.map(item => item.toJSON()))}

方法2:直接提取目标数组属性

如果只需要Sequelize对象里的某个数组字段,直接提取该属性再转JSON即可:

// 假设nodejskeys里的targetArray是你需要的数组
script.
    let keys = !{JSON.stringify(nodejskeys.targetArray)}

为什么原来的写法无效

你用#{nodejskeys}时,Pug会调用Sequelize实例的toString()方法,输出的是实例的字符串表示(比如[object Object]),而非合法的JSON结构,所以前端无法解析成可用的对象/数组。而!{}会直接输出原始内容,配合JSON.stringify()就能生成前端可识别的JSON格式。

内容的提问来源于stack exchange,提问作者ShadowCoding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 01:37:06