Html 在控制台上的EJS变量中打印json数组时出错
伙计们,我正在使用expressjs、ejs开发一个在线购物网站 情景 为了显示产品{name,description,imageUrl},我在网页上借助ejs控制流进行迭代 我正在发送一个数组,其中包含JSON格式的每个产品的所有详细信息。(来自服务器) 在客户端,当我尝试访问这个JSON数组时,我得到以下错误Html 在控制台上的EJS变量中打印json数组时出错,html,node.js,express,ejs,Html,Node.js,Express,Ejs,伙计们,我正在使用expressjs、ejs开发一个在线购物网站 情景 为了显示产品{name,description,imageUrl},我在网页上借助ejs控制流进行迭代 我正在发送一个数组,其中包含JSON格式的每个产品的所有详细信息。(来自服务器) 在客户端,当我尝试访问这个JSON数组时,我得到以下错误 (index):266 Uncaught SyntaxError: Invalid or unexpected token 当我在谷歌chrome浏览器中打开sources标签时,它
(index):266 Uncaught SyntaxError: Invalid or unexpected token
当我在谷歌chrome浏览器中打开sources标签时,它向我展示了这个
行号为266时。我相信它将数组用双引号括起来,从而将其作为字符串
有人能告诉我这个代码出了什么问题吗
顺便说一下,我是如何在chrome控制台上打印阵列的
<script>
const data = JSON.parse("<%- products %>");
console.log(data);
</script>
getAllProducts()
方法
const getAllProducts = async () => {
const Product = mongoose.model("product", productSchema);
const allProducts = await Product.find();
return allProducts;
};
您不需要使用
JSON.parse
。直接输出JSON即可:
var data = <%- products %>;
var数据=;
我不建议进行AJAX调用,因为您将处理2个请求,而不是1个请求。您可以在后端提供代码吗?看起来数组是在
getAllProducts()函数中生成的。
。您能够提供该函数的代码吗?但是为什么输出没有用[]包装?虽然我正在发送一个数组。我不知道,我必须查看后端代码才能提供帮助。嘿,我刚刚添加了备份路由。如果这还不够的话。我将在这里分享我的git回购链接。是的,我添加了产品方法。请看一看。关于代码的任何内容看起来都不会/不应该输出括号。反向报价有效吗?括号是否仍然没有输出更新的代码?
var data = <%- products %>;