问题是:我加入了一个网站,并获得了一个脚本作为机器人。顺便说一下,我正在使用hubot。
代码是:
var myHeaders = new Headers();
myHeaders.append("Authorization", "Bearer xxxxxxxxxxxxxxxxxxx");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Cookie", "__xxxxxxxxxxxxxxxxxxxx");
var raw = JSON.stringify({"language":"pt_br","text":"sim"});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://yyyyyy/v2/parse/", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
启动机器人时,出现此错误:
*Headers is not defined
at Object. (/home/ubuntu/hubot-rocketchat-boilerplate/scripts/leadtest.js:1:17)
at Module._compile (internal/modules/cjs/loader.js:1200:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (/home/ubuntu/hubot-rocketchat-boilerplate/node_modules/coffeescript/lib/coffeescript/register.js:53:36)
at Function.Module._load (internal/modules/cjs/loader.js:937:14)
at Module.require (internal/modules/cjs/loader.js:1089:19)
at require (internal/modules/cjs/helpers.js:73:18)
at Robot.loadFile (/home/ubuntu/hubot-rocketchat-boilerplate/node_modules/hubot/src/robot.js:360:22)
at /home/ubuntu/hubot-rocketchat-boilerplate/node_modules/hubot/src/robot.js:383:52
at Array.map (:null:null)
at Robot.load (/home/ubuntu/hubot-rocketchat-boilerplate/node_modules/hubot/src/robot.js:383:35)
at RocketChatBotAdapter.loadScripts (/home/ubuntu/hubot-rocketchat-boilerplate/node_modules/hubot/bin/hubot.js:115:9)
at Object.onceWrapper (events.js:421:28)
at RocketChatBotAdapter.emit (events.js:315:20)
at /home/ubuntu/hubot-rocketchat-boilerplate/node_modules/hubot-rocketchat/index.js:80:14
at processTicksAndRejections (internal/process/task_queues.js:97:5)*
我发现问题出在代码的第一行,标题是什么,我应该怎么办?我想念的是什么?谢谢你们。
您在代码的第一行中创建的Header对象为:
var myHeaders = new Headers();
由于该程序无法在程序中找到Headers()对象,因此无法对其进行初始化。因此出现Headers not defined
错误。
进入下一个问题:什么是标题?:
Fetch API的Headers接口允许您对HTTP请求和响应标头执行各种操作。您可以参考this documentation了解更多信息。
最后,此问题已解决here,请参考。但是,如果您想在这里回答,那么建议的解决方法是:
const fetch = require('node-fetch');
global.fetch = fetch
global.Headers = fetch.Headers;
之所以这样做,是因为Headers()
是Fetch API的本机构造,您可能需要填充Fetch API。