Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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 nodejs和monkey之间的通信_Javascript_Arrays_Node.js_Tampermonkey - Fatal编程技术网

Javascript nodejs和monkey之间的通信

Javascript nodejs和monkey之间的通信,javascript,arrays,node.js,tampermonkey,Javascript,Arrays,Node.js,Tampermonkey,这是更多关于什么是可能的问题 我正在使用tampermonkey从我在工作中使用的网站上刮取表。它帮助我管理门票和其他东西。目前,我正在使用tampermoneky在同一页上显示数字(如票数、严重性、里程碑等)。目前我在单独的页面上工作,因为我可以在上面做更多的事情,但我在如何与该页面沟通方面遇到了问题 我在想,我可能会每分钟发送一个数组到node.js服务器,一旦这个数组出现在节点上,我就可以从那里开始处理它 目前我正在使用json文件,因为我想检查所有的数学是否正确。但我需要手动操作。是否可

这是更多关于什么是可能的问题

我正在使用tampermonkey从我在工作中使用的网站上刮取表。它帮助我管理门票和其他东西。目前,我正在使用tampermoneky在同一页上显示数字(如票数、严重性、里程碑等)。目前我在单独的页面上工作,因为我可以在上面做更多的事情,但我在如何与该页面沟通方面遇到了问题

我在想,我可能会每分钟发送一个数组到node.js服务器,一旦这个数组出现在节点上,我就可以从那里开始处理它

目前我正在使用json文件,因为我想检查所有的数学是否正确。但我需要手动操作。是否可以将此阵列从tampermonkey发送到节点服务器?

是的,这是可能的

首先,确保nodejs服务器的URL位于@connect列表中

// @connect      example.com
其次,确保您批准了GM_xmlhttpRequest

// @grant        GM_xmlhttpRequest
之后,通过POST请求将数据发送到服务器将非常简单:

const scrapedData = {
'item1': value1,
'item2': value2
}

GM_xmlhttpRequest ({
  method: 'POST',
  url: 'example.com/api',
  headers: { "Content-Type": "application/json" },
  data: JSON.stringify(scrapedData) 
)}
在nodejs server.js文件(或其他文件)中包含主体解析器

const bodyParser = require('body-parser')
const jsonParser = bodyParser.json()
const urlencodedParser = bodyParser.urlencoded({ extended: false })
并设置处理邮件的路线

app.post('/api', jsonParser, function (request, response) {
   const data = request.body
   console.log(data)
})

当然,在安全性、错误处理和其他方面,您可以做很多事情,但这应该可以让您开始。

当然,让用户脚本将数据发送到服务器,然后服务器可以处理数据-这是一个用户脚本而不是本机脚本标记,这一事实没有什么区别,谢谢。我不确定这是否真的可能:D