Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 在控制台上的EJS变量中打印json数组时出错_Html_Node.js_Express_Ejs - Fatal编程技术网

Html 在控制台上的EJS变量中打印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标签时,它

伙计们,我正在使用expressjs、ejs开发一个在线购物网站

情景 为了显示产品{name,description,imageUrl},我在网页上借助ejs控制流进行迭代

我正在发送一个数组,其中包含JSON格式的每个产品的所有详细信息。(来自服务器) 在客户端,当我尝试访问这个JSON数组时,我得到以下错误

(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 %>;