Node.js和Tampermonkey之间的通信

时间:2019-09-13 09:05:55

标签: javascript arrays node.js tampermonkey

这是关于可能的问题的更多问题。

我正在使用tampermonkey从工作中使用的网站上删除表格。它正在帮助我管理机票和相关物品。目前,我正在使用tampermoneky在同一页面上显示数字(例如票数,严重程度,里程碑等)。目前,我正在单独的页面上工作,因为我可以在它上面做更多的事情,但是我在与该页面进行通信时遇到了问题。

我当时想我可能每分钟将数组发送到node.js服务器,并且一旦该数组在节点上,我就可以从那里取出它并开始进行处理。

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

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。

首先确保你的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 文件(或其他任何文件)中包含 body-parser

const bodyParser = require('body-parser')
const jsonParser = bodyParser.json()
const urlencodedParser = bodyParser.urlencoded({ extended: false })

并设置路由来处理 POST

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

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