Node.js
N-API
수색…
소개
N-API는 NodeJS 용 네이티브 모듈을 만드는 새롭고 나은 방법입니다. N-API는 초기 단계에 있으므로 일관성없는 문서가있을 수 있습니다.
N-API에 안녕하세요.
이 모듈은 hello 모듈에 hello 함수를 등록합니다. hello 함수는 printf
콘솔에서 Hello world를 출력하고 native 함수에서 자바 스크립트 호출자로 1373
을 반환합니다.
#include <node_api.h>
#include <stdio.h>
napi_value say_hello(napi_env env, napi_callback_info info)
{
napi_value retval;
printf("Hello world\n");
napi_create_number(env, 1373, &retval);
return retval;
}
void init(napi_env env, napi_value exports, napi_value module, void* priv)
{
napi_status status;
napi_property_descriptor desc = {
/*
* String describing the key for the property, encoded as UTF8.
*/
.utf8name = "hello",
/*
* Set this to make the property descriptor object's value property
* to be a JavaScript function represented by method.
* If this is passed in, set value, getter and setter to NULL (since these members won't be used).
*/
.method = say_hello,
/*
* A function to call when a get access of the property is performed.
* If this is passed in, set value and method to NULL (since these members won't be used).
* The given function is called implicitly by the runtime when the property is accessed
* from JavaScript code (or if a get on the property is performed using a N-API call).
*/
.getter = NULL,
/*
* A function to call when a set access of the property is performed.
* If this is passed in, set value and method to NULL (since these members won't be used).
* The given function is called implicitly by the runtime when the property is set
* from JavaScript code (or if a set on the property is performed using a N-API call).
*/
.setter = NULL,
/*
* The value that's retrieved by a get access of the property if the property is a data property.
* If this is passed in, set getter, setter, method and data to NULL (since these members won't be used).
*/
.value = NULL,
/*
* The attributes associated with the particular property. See napi_property_attributes.
*/
.attributes = napi_default,
/*
* The callback data passed into method, getter and setter if this function is invoked.
*/
.data = NULL
};
/*
* This method allows the efficient definition of multiple properties on a given object.
*/
status = napi_define_properties(env, exports, 1, &desc);
if (status != napi_ok)
return;
}
NAPI_MODULE(hello, init)
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow