Как вызвать метод c ++ из узла - PullRequest
0 голосов
/ 27 апреля 2020

Я получаю сообщение об ошибке:

Module._extensions[extension](this, filename);
Error: Symbol date_format_module not found.

Я попробовал следующий код:

дата. cpp:

// /* setlocale example */
#include <time.h>   /* time_t, struct tm, time, localtime, strftime */
#include <locale.h> /* struct lconv, setlocale, localeconv */
#include <iostream>
#include <string>
using namespace std;

string getDateString()
{
    time_t rawtime;
    struct tm *timeinfo;
    char buffer[80];

    time(&rawtime);
    timeinfo = localtime(&rawtime);

    setlocale(LC_ALL, "");
    strftime(buffer, 80, "%x", timeinfo);
    string dateString(buffer);
    return dateString;
}

int main()
{
    cout << "Date is " << getDateString() << endl;
    return 0;
}

Дата интерфейса:

#include <napi.h>
#include <string>
namespace IDate {
  std::string getDateString();
  Napi::String getDateStringWrapped(const Napi::CallbackInfo& info);
  Napi::Object Init(Napi::Env env, Napi::Object exports);
}

index. cpp:

#include "dateInterface.h"
Napi::String IDate::getDateStringWrapped(const Napi::CallbackInfo &info)
{
    Napi::Env env = info.Env();
    Napi::String returnValue = Napi::String::New(env, IDate::getDateString());
    return returnValue;
}
Napi::Object IDate::Init(Napi::Env env, Napi::Object exports)
{
    exports.Set(Napi::String::New(env, "getDateStringWrapped"),
                Napi::Function::New(env, IDate::getDateStringWrapped));

    return exports;
}

NODE_API_MODULE(dateFormat, Init)

index. js:

const dateModule = require('./build/Release/date-format.node')

console.log('date module props ', dateModule);
console.log('');

console.log('Call DateFormat method:  ', dateModule.getDateStringWrapped());

Я пробую это в первый раз, и я не уверен, где находится ссылка сломан, поэтому я получаю ошибку: модуль не найден. Может кто-нибудь, пожалуйста, руководство. Спасибо

...