您好,我是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构建期间丢失/显示? 我做错了什么吗?有没有办法实现它?
答案 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";