An unofficial library that provides a robust solution for Node.js developers to interface with ZKTeco Devices.
Warning
This repository is currently in development and may contain bugs or incomplete features. Use at your own risk and do not deploy to a production environment
You must have Node.js ^18 before run the command down below:
npm i zklib-tscreate a connection. constructor receives (ip, timeout, inport, port, comm_key)
import Zklib from 'zklib-ts'
const zkInstance = new Zklib("10.0.0.10",10000,10000,4370,0)
await zkInstance.createSocket()Get all users:
const users = await zkInstance.getUsers()Get all attendances:
const attendances = await zkInstance.getAttendances()get All templates
const templates = await zkInstance.getTemplates() save user templates. receives a User instance class and an array of Finger class. currently only save one template per call.
const templates = await zkInstance.saveUserTemplate(user, templates) enrollUser: receives a user user_id and finger ID fid where 0 <= fid <= 9
await zkInstance.enrollUser(50,5)delete template. receives user id uid and finger id where 0 <= fid <= 9
await zkInstance.deleteTemplate(50,5)Check the Testing section for more functionalities coverage.
The repo uses Jest. There is a mock file for test without having a phisical device connected. Before start you will need to install dependencies.
npm ifor testing your phisical device first create .env file in root directory with the values down below:
DEVICE_IP=10.10.10.1
DEVICE_PORT=4370
DEVICE_PASSWORD=1234
and then run tests:
npm t
for testing especific file after "npm t" type some name that matches a test file ... for example the next command will execute "Generic.test.ts"
npm t Generic
The MIT License (MIT). Please see License File for more information.
