node.js addon - 如何将字符串参数传递给(nan)C++

Seb*_*Net 3 c++ node.js node.js-addon ibm-mq

我的node.js代码执行此操作:

var MyMQ = require( './build/release/mqconn' ) ;
var MyQmgrName = 'QM_CNT' ; // req.params.qmgrname ; 
MyMQ.connect ( MyQmgrName, function ( err, result ) { 
Run Code Online (Sandbox Code Playgroud)

我的C++代码(uning nan)想要接收第一个字符串参数:

NAN_METHOD( MQ_Connect ) {

    NanScope();
    Local<Value> szQMN( args[ 0 ] );
    printf( "(cc)>>>> qmn [%s].\n", szQMN ) ;
Run Code Online (Sandbox Code Playgroud)

......但我得到的是垃圾.

我有什么不对的任何线索?塞巴斯蒂安.

msc*_*dex 5

首先,你应该通常验证你的论点.然后你可以通过调用ToString()参数来获取一个字符串.例如:

NAN_METHOD(MQ_Connect) {
  NanScope();

  if (args.Length() > 0) {
    if (args[0]->IsString()) {
      String::Utf8Value str(args[0]->ToString());
      printf("(cc)>>>> qmn [%s].\n", (const char*)(*str));
    }
  }
Run Code Online (Sandbox Code Playgroud)