# linkedge-core-sdk-nodejs
**Repository Path**: aliyun/linkedge-core-sdk-nodejs
## Basic Information
- **Project Name**: linkedge-core-sdk-nodejs
- **Description**: Link IoT Edge Core SDK for Node.js.
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-05-08
- **Last Updated**: 2025-08-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Link IoT Edge Core SDK for Node.js
The package allows developers to write functions on Function Compute using JavaScript, which running within Link IoT Edge.
## Installation
```
npm install linkedge-core-sdk
```
or you can copy this project directly to your function's `node_modules` directory.
Althrough the library is built into Link IoT Edge, we recommand that you install it locally as it improves the development experience, especially when developing with IDE.
## Example
Here is a examle demonstrates publishing messages to a topic.
```js
const leSdk = require('linkedge-core-sdk');
const iotData = new leSdk.IoTData();
const message = {
topic: '/hello/world',
payload: 'Hello World! Sent from Link IoT Edge using Node.js.',
};
iotData.publish(message, (err) => {
if (err) console.log(err);
});
```
## APIs
* [IoTData#**publish()**](#publish)
* [IoTData#**getThingProperties()**](#getThingProperties)
* [IoTData#**setThingProperties()**](#setThingProperties)
* [IoTData#**callThingService()**](#callThingService)
* [IoTData#**getThingsWithTags()**](#getThingsWithTags)
* [FCClient#**invokeFunction()**](#invokeFunction)
---
### IoTData.publish(params, callback)
Publishes messages.
The parameters are:
* `params`: params object,which contains:
* `topic`: {String} (Required) the topic name to be published.
* `payload`: {String|Buffer} (Required) the message payload in string or in binary.
* `callback(err)`: a callback function for receiving result, which follows the standard JS practice of setting the first parameter as an error.
---
### IoTData.getThingProperties(params, callback)
Obtains specific properties of a thing.
The parameters are:
* `params`: params object,which contains:
* `productKey`: {String} (Required) the productKey of the target thing from which to get properties.
* `deviceName`: {String} (Required) the deviceName of the target thing from which to get properties.
* `payload`: {Array} (Required) a list of keys that specifies the properties to be obtained.
* `callback(err, data)`: a callback function for receiving result, which follows the standard JS practice of setting the first parameter as an error and the second parameter as the result object.
---
### IoTData.setThingProperties(params, callback)
Updates the properties of a thing.
The parameters are:
* `params`: params object,which contains:
* `productKey`: {String} (Required) the productKey of the target thing to which to set properties.
* `deviceName`: {String} (Required) the deviceName of the target thing to which to set properties.
* `payload`: {Object} (Required) a object consisting of keys and values that specifies the properties to be updated.
* `callback(err)`: a callback function for receiving result, which follows the standard JS practice of setting the first parameter as an error.
---
### IoTData.callThingService(params, callback)
Calls a specific service of a thing.
The parameters are:
* `params`: params object,which contains:
* `productKey`: {String} (Required) the productKey of the target thing of which to call a service.
* `deviceName`: {String} (Required) the deviceName of the target thing of which to call a service.
* `service`: {String} (Required) the name of the service to be called.
* `payload`: {String|Buffer} a optional string or binary in JSON that you provided to the service as arguments.
* `callback(err, [data])`: a callback function for receiving result, which follows the standard JS practice of setting the first parameter as an error and the second parameter as the result object.
---
### IoTData.getThingsWithTags(params, callback)
Obtains a list of thing objects, each of which being with all given tags.
The parameters are:
* `params`: params object,which contains:
* `payload`: {Array} (Required) a list of `tag` that consisting of `{key: value}`.
* `callback`: a callback function for receiving result, which follows the standard JS practice of setting the first parameter as an error and the second parameter as a list of thing objects.
---
### FCClient.invokeFunction(params, callback)
Invokes a specific function.
The parameters are:
* `params`: params object,which contains:
* `functionId`: {String} (Required) the id of the function to be invoked. Function name is not supported currently.
* `invocaionType`: {String} a optional type of the invocation, may be `Sync` or `Async`. It will be `Sync` if not specified.
* `invokerContext`: {String} a optional invoker-specific information to the invoked function. The invoker information will be passed into the function, and can be choosed through context variable. It must be base64-encoded.
* `payload`: {String|Buffer} a optional string or binary data that you want to provide to the function as input.
* `callback`: a callback function for receiving result, which follows the standard JS practice of setting the first parameter as an error and the second parameter as the result object.
## License
Apache 2.0