Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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
Javascript 节点ejs在单击时运行脚本_Javascript_Html_Node.js_Function - Fatal编程技术网

Javascript 节点ejs在单击时运行脚本

Javascript 节点ejs在单击时运行脚本,javascript,html,node.js,function,Javascript,Html,Node.js,Function,我有一个使用graph api的简单函数,我想在用户按下按钮时运行它。我从中运行的文件是一个ejs文件,其页眉和页脚作为代码的前缀和后缀 我的代码如下: 点击我 给我画个图 var ctx=document.getElementById('myChart').getContext('2d'); var myChart=新图表(ctx{ 类型:'bar', 数据:{ 标签:[“红色”、“蓝色”、“黄色”、“绿色”、“紫色”、“橙色”], 数据集:[{ 标签:“#投票数”, 数据:[12,19,3

我有一个使用graph api的简单函数,我想在用户按下按钮时运行它。我从中运行的文件是一个ejs文件,其页眉和页脚作为代码的前缀和后缀

我的代码如下:


点击我
给我画个图
var ctx=document.getElementById('myChart').getContext('2d');
var myChart=新图表(ctx{
类型:'bar',
数据:{
标签:[“红色”、“蓝色”、“黄色”、“绿色”、“紫色”、“橙色”],
数据集:[{
标签:“#投票数”,
数据:[12,19,3,5,2,3],
背景颜色:[
"rgba(255,99,132,0.2)",,
“rgba(54162235,0.2)”,
"rgba(255,206,86,0.2)",,
“rgba(751921920.2)”,
“rgba(153102255,0.2)”,
‘rgba(255、159、64、0.2)’
],
边框颜色:[
"rgba(255,99,132,1)",,
“rgba(54162235,1)”,
"rgba(255,206,86,1)",,
"rgba(751921921)",,
"rgba(153102255,1)",,
‘rgba(255、159、64、1)’
],
边框宽度:1
}]
},
选项:{
比例:{
雅克斯:[{
滴答声:{
贝吉纳泽罗:是的
}
}]
}
}
});

我有一个名为common1的函数,它是另一个名为functions的文件中的导出函数,该文件只记录一个字符串。我希望运行整个脚本来运行图形,只需单击一个按钮,我该怎么做?

您不能直接从客户端代码触发服务器端代码

从服务器请求页面时:

  • 将执行EJS模板
  • 将被评估(您说它只是记录一个字符串,所以此时它将在服务器控制台上执行此操作)
  • 结果(包括
    onclick=”“
    ,因为
    没有向模板输出任何内容)将发送到浏览器
  • 单击将不起任何作用,因为
    onclick
    函数体为空

  • 如果要在单击按钮时在服务器上执行
    common1()
    ,则需要编写一个Web服务来执行此操作,然后通过HTTP请求触发它(例如,使用
    onclick
    函数中的
    fetch

    如果要在单击按钮时在浏览器上执行
    common1()
    ,则需要使用
    元素将其包含在页面中,并将函数调用直接放入
    onclick
    函数中(即不在EJS标记内)


    如果你想在点击时运行生成图形的代码,那么把它放在一个函数中并调用这个函数


    进一步阅读: