javascript - 如何调试这段nodejs代码?

标签 javascript debugging node.js

我正在尝试使用 Node 学习“q”库。

$ node -v // -> v0.6.6

我正在使用最新的q.js来自https://github.com/kriskowal/q/blob/master/q.js现在。我将代码复制到 q.js文件是我的 testq.js 的同级文件文件。

代码testq.js是:

function step1(callback) { console.log("step1"); callback("abc"); };

var Q = require("./q");

Q.fcall(step1).end();

当我运行它时:

node testq.js

它报告:

E:\WORKSPACE_NODE\TestNodeJs\q>node testq.js
step1

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
          ^
TypeError: undefined is not a function
    at step1 (E:\WORKSPACE_NODE\TestNodeJs\q\testq.js:1:112)
    at makePromise.<anonymous> (E:\WORKSPACE_NODE\TestNodeJs\q\q.js:541:27)
    at makePromise.promiseSend (E:\WORKSPACE_NODE\TestNodeJs\q\q.js:325:41)
    at Array.0 (E:\WORKSPACE_NODE\TestNodeJs\q\q.js:787:28)
    at EventEmitter._tickCallback (node.js:192:40)

我安装了v8 debugger plugin for eclipse ,逐行调试。不幸的是,我找不到错误的开始。

我是nodejs新手,请帮助我调试。例如。我应该使用什么工具?或者我应该尝试任何其他有用的方法?


更新

根据霍根的回答,代码:

function step1(callback) { console.log("step1"); };

var Q = require("./q");

Q.fcall(step1).end();

可以成功运行,没有任何错误。

但是当我尝试时:

function step1(callback) { console.log("step1"); };

var Q = require("./q");

Q.fcall(step1)
.then(function(v) {
    console.log("finished: " +v);
}, function(err){
    console.log(err);
})
.end();

打印:

E:\WORKSPACE_NODE\TestNodeJs\q>node testq.js
step1
finished: undefined

我仍然想要一个演示 step1会将一些内容传递给 function(v) {console.log("finished: " +v);} ,其中v不是undefined .

最佳答案

让你的step1看起来像这样(修改为最后一个版本):

 function step1() { console.log("step1"); return "abc" };

那么你就会幸福。


查看 Q 文档,我相信您需要 'Q.node(...) 或 Q.ncall(...) 或 Q.fcall(...)

我会更多地了解 Q,或者如果您描述您想要做什么,我可能会提供帮助。


步骤 1 接受一个参数——一个函数。

但是当你调用它时你没有定义它,所以 callback("abc"); 是未定义的。

当你去掉所有不重要的东西时,也许会更清楚:

 function step1(callback) { console.log("step1"); callback("abc"); };

 var Q = require("q");

 Q.call(step1)

关于javascript - 如何调试这段nodejs代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10416935/

相关文章:

java - 将进程附加到调试 session : empty process list

node.js - 尝试在 Ubuntu 中安装 opencv4nodejs 时权限被拒绝

javascript - Redis 数据库设计不当

javascript - 链式 promise ( Bluebird )

javascript - wix/react-native-navigation V2 | wix/react-native-navigation V2 |在第二个屏幕中设置根底部选项卡

javascript - 将事件处理程序添加到数组

php - curl post后,如何检查postfield - 调试

javascript - Lodash : return first key of object whose value(i. e 数组)中有一个给定的元素(即字符串)

ios - 为什么我的 Xcode 6 会崩溃?

node.js - Redis部署配置-主从复制