调试器在Meteor.call(可能是客户端/服务器调试)之后停止
debugger stop after Meteor.call perhaps client/server debugging
我在服务器端调试Meteor方法时遇到了问题。在客户端(在Chrome中)调试时,调试器会执行到下面代码的第4行("Meteor.call"),并立即返回到第2行("convlist:function()"),避免执行第2条调试器指令。客户端/服务器控制台中没有错误。我也有服务器端调试器,但运行的进程从未跳转到它(中的服务器调试http://localhost:8080/debug?port=5858)。如有任何建议,我们将不胜感激。
客户端:
Template.conversationList.helpers({
convlist: function(){
debugger;
Meteor.call('getConvList', function(error, result){
if(error){
alert('Error');
} else {
debugger; // just to evaluate the result var
return result;
}
});
//edited 3rd debugger;
debugger;
}});
服务器端:
if (Meteor.isServer) {
Meteor.methods({
getConvList: function(){
debugger;
let myUser = new Array();
myUser.push(Meteor.user()._id);
var newConv = Conversations.aggregate([{ "$match" : { "users": {"$in": [Meteor.user()._id]}}}, { "$project": { lstmsg:1, "conversator": {"$setDifference": ["$users", myUser] }}}]);
return newConv;
}
});
}
- 为什么服务器端的方法返回一个值,但在客户端却显示为未定义?原因:在客户端调试模式下,返回的值似乎未定义,但稍后服务器会给出答案。尝试使用Session.set变量来捕获返回的值,并在服务器答案到来时获得动态更新
- 为什么客户端调试器在第4行停止
在客户端,方法调用被执行,并且只传递稍后执行的回调——它不会在调用方法的同时运行。因为命令调试器只是断点的快捷方式,所以它实际上并没有被执行。因此,客户端只运行第4行,然后完成convlist函数是正确的。
- 代码从不跳转到服务器端调试器:
一旦您启动"流星调试",服务器就会在默认情况下暂停。必须打开节点检查器(http://localhost:8080/debug?port=5858)让它取消暂停并启动您的应用程序。请注意,Firefox无法很好地加载节点检查器,并且可能无法打开服务器,在这种情况下,您将永远不会在服务器端看到换行符。
- 为什么服务器端的方法返回一个值,但在客户端却显示为未定义
方法调用是异步的。因此,当您在客户端调用它时,它会立即返回undefined,然后开始在服务器上执行。一旦完成,就会调用回调函数,并且您可以访问结果值。您可以将回调中的结果存储在Session变量中,并在从服务器方法调用返回后使用它在模板中显示。
此外,请确保调试器指令位于要传递给方法调用的回调函数内。请记住,正确的方法调用是Method.call('methodName',inputParameter,callbackFunction);尝试传递一个null inputParameter,并检查回调执行的结果-这对我来说是不同的。如果我不传递inputParameter的话,当回调运行时,错误和结果都是未定义的,但如果我传递任何inputParam,那么函数就有正确的参数。客户端Ex:
Template.conversationList.helpers({
convlist: function(){
debugger;
Meteor.call('getConvList', null, function(error, result){
if(error){
alert('Error');
} else {
debugger; // just to evaluate the result var
return result;
}
});
//edited 3rd debugger;
debugger;
}});
- 使用JSP从服务器检索和显示图像
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 将服务器js文件替换为本地js进行调试
- Express.js服务器没有响应-如何调试
- 调试器在Meteor.call(可能是客户端/服务器调试)之后停止
- Meteor服务器端调试
- Nitrous.io上Meteor应用程序的服务器端调试
- 有哪些技术可用于 RIA 开发的客户端和服务器端调试
- Nodejs 服务器端调试
- 如何在生产服务器上测试、调试和查看 Node js 应用的控制台日志消息
- 有没有办法在实时服务器上禁用JavaScript调试
- 如何使用节点在服务器上调试咖啡脚本
- Intellij可以调试由本地Web服务器提供的javascript代码吗?
- 如何使用Netbeans在服务器端调试Ajax请求
- 服务器端调试不工作[Meter 1.2]
- 启动节点调试服务器后,Grunt停止输出信息
- 用reactjs调试服务器端渲染组件
- 调试expressjs服务器和electron
- 收集调试日志,但只有在log4javascript出错时才将它们发送到服务器
- 如何使用运行本地Tomcat服务器的Eclipse调试javascript