Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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-Node.js要求(';ttapi';)不能从bookmarklet工作_Javascript_Node.js_Bookmarklet - Fatal编程技术网

Javascript-Node.js要求(';ttapi';)不能从bookmarklet工作

Javascript-Node.js要求(';ttapi';)不能从bookmarklet工作,javascript,node.js,bookmarklet,Javascript,Node.js,Bookmarklet,我正在尝试使用alaingilbert的API为turntable.fm编写一个机器人程序(https://github.com/alaingilbert/Turntable-API),它使用node.js。我以前从来没有写过一行javascript,所以我不确定我这里出了什么错 这是我的密码: var container = document.body; if(document.getElementById("ttapi")) { container.removeChild(docu

我正在尝试使用alaingilbert的API为turntable.fm编写一个机器人程序(https://github.com/alaingilbert/Turntable-API),它使用node.js。我以前从来没有写过一行javascript,所以我不确定我这里出了什么错

这是我的密码:

var container = document.body;

if(document.getElementById("ttapi")) {
    container.removeChild(document.getElementById("ttapi"));
}
var obj = document.createElement("div");
obj.id = "ttapi";
obj.style.position = "absolute";
obj.style.top = "20px";
obj.style.left = "20px";
obj.style.width = "500px";
obj.style.height = "100px";
obj.style.padding = "10px";
obj.style.backgroundColor = "#fff";
obj.style.fontSize = "13px";
var auth = document.createElement("div");
    auth.innerHTML = "Auth: "+turntable.user.auth;
var userid = document.createElement("div");
    userid.innerHTML = "UserId: "+turntable.user.id;
for (var i in turntable) { if (turntable[i].roomId) { var rid = turntable[i].roomId; break; } }
var roomid = document.createElement("div");
    roomid.innerHTML = "RoomId: "+rid;
var testLine = document.createElement("div");
    testLine.innerHTML = " IM STILL WORKING";

var Bot= require('ttapi');
var AUTH = turntable.user.auth;
var USERID = turntable.user.id;
var ROOMID = rid;   

obj.appendChild(auth);
obj.appendChild(userid);
obj.appendChild(roomid);
obj.appendChild(testLine);
container.appendChild(obj);
我在转盘上运行bookmarklet中的脚本。我真的不知道如何从javascript中获得好的调试消息,所以我通过将
container.appendChild(obj)
与每行代码一起向下移动来进行调试。当脚本停止工作时,它将停止显示

听起来好像您正试图在浏览器中运行node.js代码。如果这是正确的,那么它将不起作用,因为require是一个特定于节点的函数。Node.js不在浏览器中运行;它是javascript的另一种运行时,turntable.fm之类的东西可以在其上运行,而不是在浏览器上运行

如果您想使用bookmarklet编写内容,则只能使用浏览器提供的内容——即,当您转到turntable.fm,打开javascript控制台并开始在中键入内容时可以访问的内容。这通常包括
窗口
文档
,以及turntable.fm正在使用的任何库。例如,如果他们使用jquery,您可以使用
$
访问它

编辑:此外,如果您正在使用firefox,请查找“firebug”扩展。如果幸运(或使用chrome),您的浏览器(或firebug等扩展)将为您提供console.log,这对调试非常有用


哦,这是手册:你会想看的。

太好了,这正是我需要的提示。我没有意识到node.js是这样工作的,我认为它只是一个静态依赖项。我运行了我的脚本的一个编辑版本,它运行得非常好。