Skip to content

nuvix-dev/sdk-for-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nuvix Node.js SDK

License Version

Twitter Account

This is the Node.js SDK for integrating with Nuvix from your Node.js server-side code. If you're looking to integrate from the browser, you should check nuvix-dev/sdk-for-web

Nuvix is an open-source backend as a service server that abstracts and simplifies complex and repetitive development tasks behind a very simple to use REST API. Nuvix aims to help you develop your apps faster and in a more secure way. Use the Node.js SDK to integrate your app with the Nuvix server to easily start interacting with all of Nuvix backend APIs and tools. For full API documentation and tutorials go to https://docs.nuvix.dev

Installation

To install via NPM:

npm install @nuvix/sdk --save

Getting Started

Init your SDK

Initialize your SDK with your Nuvix server API endpoint and project ID which can be found in your project settings page and your new API secret Key project API keys section.

const sdk = require('@nuvix/sdk');

let nuvix = new sdk.Client();

nuvix
    .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
    .setProject('5df5acd0d48c2') // Your project ID
    .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
    .setSelfSigned() // Use only on dev mode with a self-signed SSL cert
;

Make Your First Request

Once your SDK object is set, create any of the Nuvix service objects and choose any request to send. Full documentation for any service method you would like to use can be found in your SDK documentation or in the API References section.

let promise = nuvix.users.create(sdk.ID.unique(), "email@example.com", "+123456789", "password", "Walter O'Brien");

promise.then(function (response) {
    console.log(response);
}, function (error) {
    console.log(error);
});

Full Example

const sdk = require('@nuvix/sdk');

let nuvix = new sdk.Client();

nuvix
    .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
    .setProject('5df5acd0d48c2') // Your project ID
    .setKey('919c2d18fb5d4...a2ae413da83346ad2') // Your secret API key
    .setSelfSigned() // Use only on dev mode with a self-signed SSL cert
;

let promise = nuvix.users.create(sdk.ID.unique(), "email@example.com", "+123456789", "password", "Walter O'Brien");

promise.then(function (response) {
    console.log(response);
}, function (error) {
    console.log(error);
});

Type Safety with Models

The Nuvix Node SDK provides type safety when working with database documents through generic methods. Methods like listDocuments, getDocument, and others accept a generic type parameter that allows you to specify your custom model type for full type safety.

TypeScript:

interface Book {
    name: string;
    author: string;
    releaseYear?: string;
    category?: string;
    genre?: string[];
    isCheckedOut: boolean;
}

try {
    const documents = await nuvix.collections.listDocuments<Book>(
        'your-schema-id',
        'your-collection-id'
    );
    
    documents.documents.forEach(book => {
        console.log(`Book: ${book.name} by ${book.author}`); // Now you have full type safety
    });
} catch (error) {
    console.error('Nuvix error:', error);
}

JavaScript (with JSDoc for type hints):

/**
 * @typedef {Object} Book
 * @property {string} name
 * @property {string} author
 * @property {string} [releaseYear]
 * @property {string} [category]
 * @property {string[]} [genre]
 * @property {boolean} isCheckedOut
 */

const databases = new Databases(client);

try {
    /** @type {Models.DocumentList<Book>} */
    const documents = await nuvix.collections.listDocuments<Book>(
        'your-schema-id',
        'your-collection-id'
    );
    
    documents.documents.forEach(book => {
        console.log(`Book: ${book.name} by ${book.author}`); // Type hints available in IDE
    });
} catch (error) {
    console.error('Nuvix error:', error);
}

Error Handling

The Nuvix Node SDK raises NuvixException object with message, code and response properties. You can handle any errors by catching NuvixException and present the message to the user or handle it yourself based on the provided error information. Below is an example.

try {
    let res = await nuvix.users.create(sdk.ID.unique(), "email@example.com", "+123456789", "password", "Walter O'Brien");
} catch(e) {
    console.log(e.message);
}

License

Please see the BSD-3-Clause license file for more information.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors