January 19, 2025
+ 12
How to create a JavaScript library.

Introduction

You can create an external library for storing JavaScript functions. When you create a new library you can add a new JavaScript function to the library at the same time.

If you want to try out the examples in this section, follow the instructions given in Do a Quick Install to install Couchbase Server, configure a cluster, and load a sample dataset. Read the following for further information about the tools available for editing and executing queries:

Creating the Library and Adding JavaScript Code

You can use the Query Workbench UI or the REST API to create a library. The process for creating the library is as follows:

Sequence for Creating a JavaScript Library
Figure 1. Sequence for Creating a JavaScript Library
(1) Create library

Create the library by creating the logical storage for the library.

(2) Add the JavaScript function to the library

Edit the library to add your JavaScript function.

(3) Create SQL++ User-Defined Function

The SQL++ User Defined Function is needed so that it can be called as part of SQL++ statements (such as SELECT and EXECUTE FUNCTION). Creating the SQL++ User-Defined Function is covered in Creating a User-Defined Function.

As shown in Figure 1, the library is created and the first function is added in the same step.

  1. Select Query to access the Query Workbench, then select UDF Query Workbench menu.

    route to the user-defined functions screen
  2. Click on the + add function library link in the JavaScript Function Libraries table to show the Add Library screen.

  3. Select your Namespace from the drop-down lists. In this example, the namespace has been set to the inventory scope inside the travel-sample bucket. You also have the option of leaving the Namespace unset, which will the library accessible at the cluster level.

    add scoped library
    A Note on Namespaces

    The Namespace defines the scope of the library within the containing bucket. (You can read about scopes here.) Setting the namespace means that functions in the library can only be called users who have their context set to the same scope.

  4. Enter a name for the library in the Library Name field.

  5. Add your own function to the library, for example:

    javascript
    function getBusinessDays(startDate, endDate) { let count = 0; const curDate = new Date(new Date(startDate).getTime()); while (curDate <= new Date(endDate)) { const dayOfWeek = curDate.getDay(); if(dayOfWeek !== 0 && dayOfWeek !== 6) count++; curDate.setDate(curDate.getDate() + 1); } return count; }
  6. Save the library by pressing the Save button.

    You can, of course, create an empty library and add functions to it later.

When you have created an external library and added JavaScript code, you must create an SQL++ user-defined function to reference the JavaScript code in the library, so it can be called as part of any SQL++ statement.