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

node.js addon - how to pass a string parameter to (nan) C++

本文关键字:参数传递 nan C++ 字符串 插件 js node      更新时间:2023-10-16

My node.js 代码这样做:

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

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

NAN_METHOD( MQ_Connect ) {
    NanScope();
    Local<Value> szQMN( args[ 0 ] );
    printf( "(cc)>>>> qmn [%s].n", szQMN ) ;

。但我得到的是垃圾。

关于我做错了什么的任何线索?塞巴斯蒂安。

首先,你通常应该验证你的论点。然后,您可以通过在参数上调用 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));
    }
  }