C ++ node.js模块。 cout不工作?

时间:2015-12-17 15:33:07

标签: javascript c++ node.js node.js-addon

您好,我是C ++中的一个尝试修改现有本机节点模块的菜鸟。

我正在尝试在模块中添加couts来打印我认为对我有用的信息。

NAN_METHOD(Context2d::SetFillRule){
  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
  cairo_t *ctx = context->context();
  String::Utf8Value str(info[0]);
  cout << "set method called";
  ...
}

之前的方法正在运行,但cout从未显示过。 是否在node-gyp构建期间丢失/显示? 我做错了什么吗?有没有办法实现它?

4 个答案:

答案 0 :(得分:1)

我正在尝试学习N-API来为nodejs项目制作插件,并且遇到了同样的问题。添加#include <iostream>使std::cout可用于我的代码。当我通过调用node path_to_file.js运行我的代码时,就像我对任何nodejs项目一样,它成功地将我的数据打印到控制台。我知道你使用的是NAN,很可能在很久以前就已经克服了这个问题,但是我觉得这个问题很重要,因为这在我的搜索结果中显示出来,对于像我这样的初学者来说没有一个好的答案。

答案 1 :(得分:0)

只有从命令行直接启动二进制文件时,cout << "some text"才有效。 我认为情况并非如此,因为您在节点内使用它。 所以你应该从节点库中找到一些日志输出方法。

答案 2 :(得分:0)

如果它在Windows中,您可以尝试创建另一个控制台窗口。然后将您的上下文绑定到该窗口并将打印重定向到那里。

或写入文件。

答案 3 :(得分:0)

我建议将其写入日志文件(重定向std :: cout很痛苦)。

std::ofstream logFile("logfile.txt");
logFile << "set method called";