Dil*_*ous 5 javascript node.js windows-8 firebase
我正在尝试使用 Firebase 的 Node.js 包来监听我的 firebase 中的数据更改。我正在使用 on() 方法,该方法应该不间断地侦听更改(而不是仅侦听特定事件的第一次出现的 once() 方法)我在服务器上的 listener.js 文件完全一样这个:
var Firebase=require('firebase');
var Ref= new Firebase('https://mydatabase.firebaseio.com/users/');
Ref.on('child_changed',function(childsnapshot,prevchildname){
Ref.child(childsnapshot.key()).push("I hear you!");
} ) ;
Run Code Online (Sandbox Code Playgroud)
但它仅适用于第一次出现,并在第二次出现后引发致命的内存错误。
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory
Run Code Online (Sandbox Code Playgroud)
我对服务器端编程很陌生,不知道该怎么做。我一定是遗漏了一些重要的东西。我应该先用 node 设置特殊的服务器设置吗?或者制作一个守护进程,每秒左右使用一次()方法运行一个脚本?
我很确定你在这里创建了一个无限循环:
https://mydatabase.firebaseio.com/users/on('child_changed'事件在您的脚本中触发它也会发生得很快,因为 Firebase 客户端会立即触发本地事件。
您似乎正在尝试创建一个聊天机器人。这意味着您更有可能想要创建同级消息:
var Firebase=require('firebase');
var ref= new Firebase('https://mydatabase.firebaseio.com/users/');
ref.on('child_changed',function(childsnapshot,prevchildname){
ref.push("I hear you!");
}) ;
Run Code Online (Sandbox Code Playgroud)
请注意,使用 StackOverflow 调试代码的效率非常低。由于您似乎使用的是 Windows,因此我建议安装 Visual Studio 及其节点工具。他们有一个很棒的调试器,可以让您单步调试代码。在回调中设置断点(因此在带有 的行中ref.push),将快速向您显示出了什么问题。
| 归档时间: |
|
| 查看次数: |
3843 次 |
| 最近记录: |