Difference between revisions of "Nodejs Integration"
Barrymavin (Talk | contribs) (→Lianja Cloud Data Services Node module) |
Barrymavin (Talk | contribs) (→Installing the Lianja Cloud Data Services Node module) |
||
(37 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | {{DISPLAYTITLE:Node.js | + | {{DISPLAYTITLE:Node.js Module}} |
− | Node.js is an open-source and cross-platform JavaScript runtime environment. | + | Node.js is an open-source and cross-platform JavaScript runtime environment. |
Node.js runs the V8 JavaScript engine, the core of Google Chrome, outside of the browser. This allows Node.js to be very performant. | Node.js runs the V8 JavaScript engine, the core of Google Chrome, outside of the browser. This allows Node.js to be very performant. | ||
Line 8: | Line 8: | ||
==Lianja Cloud Data Services Node module== | ==Lianja Cloud Data Services Node module== | ||
− | Lianja Cloud Server includes a Node.js module | + | Lianja Cloud Server includes a Node.js module '''lianjaclouddataservices''' enabling Node.js applications to connect to a local or remote Lianja Cloud Server and perform a variety of operations. |
− | ==Installing the Lianja Cloud Data Services module== | + | ==Installing the Lianja Cloud Data Services Node module== |
+ | |||
+ | The simplest way to use the Node.js module module is by creating a symbolic link using "npm link". | ||
+ | |||
+ | On Windows: | ||
+ | |||
+ | <code lang='bash'>cd C:\lianja\cloudserver\tenants\public\wwwroot\library\LianjaWebFramework\LianjaCloudDataServices\node\ | ||
+ | npm link | ||
+ | </code> | ||
+ | |||
+ | On Linux: | ||
+ | |||
+ | <code lang='bash'>cd /opt/lianja/cloudserver/tenants/public/wwwroot/library/LianjaWebFramework/LianjaCloudDataServices/node/ | ||
+ | npm link</code> | ||
+ | |||
+ | Testing the installation: | ||
+ | |||
+ | On Windows: | ||
+ | |||
+ | <code lang='bash'> | ||
+ | cd C:\lianja\cloudserver\tenants\public\wwwroot\library\LianjaWebFramework\LianjaCloudDataServices\node\lianjaclouddataservices\ | ||
+ | node test.js</code> | ||
+ | |||
+ | On Linux: | ||
+ | |||
+ | <code lang='bash'> | ||
+ | cd /opt/lianja/cloudserver/tenants/public/wwwroot/library/LianjaWebFramework/LianjaCloudDataServices/node/lianjaclouddataservices/ | ||
+ | node test.js</code> | ||
+ | |||
+ | On MacOS: | ||
+ | |||
+ | <code lang='bash'> | ||
+ | cd /Users/shared/Lianja/cloudserver/tenants/public/wwwroot/library/LianjaWebFramework/LianjaCloudDataServices/node/lianjaclouddataservices | ||
+ | node test.js | ||
+ | </code> | ||
==Using the Lianja Cloud Data Services module in Node Applications== | ==Using the Lianja Cloud Data Services module in Node Applications== | ||
+ | |||
+ | Load the module into your Node.js application | ||
+ | |||
+ | <code lang='javascript'>const Lianja = require("Lianjaclouddataservices")</code> | ||
+ | |||
+ | Exported functions. All are asynchronous returning a "Promise" (see example usage below). | ||
+ | |||
+ | See [[OData_URIs|OData URIs]] for details of OData URIs and [[OData_Operators|OData Operators]] for all the OData operators. | ||
+ | |||
+ | ==Module Methods== | ||
+ | {| class="wikitable" width=100% | ||
+ | !width="30%"|Function | ||
+ | !width="70%"|Description | ||
+ | |- | ||
+ | |valign="top"|Lianja.login(host, user, password) | ||
+ | |valign="top"|Login and connect to to a local or remote Cloud Server. To connect locally specify the host as http: //localhost:8001 | ||
+ | |- | ||
+ | |valign="top"|Lianja.logout() | ||
+ | |valign="top"|Logout from the local or remote Cloud Server. | ||
+ | |- | ||
+ | |valign="top"|Lianja.evaluate(expr) | ||
+ | |valign="top"|Evaluates LianjaScript expression and returns the result asynchronously. | ||
+ | |- | ||
+ | |valign="top"|Lianja.evaluatePython(expr) | ||
+ | |valign="top"|Evaluates Python expression and returns the result asynchronously. | ||
+ | |- | ||
+ | |valign="top"|Lianja.evaluateJavaScript(expr) | ||
+ | |valign="top"|Evaluates JavaScript expression and returns the result asynchronously. | ||
+ | |- | ||
+ | |valign="top"|Lianja.fetch(url) | ||
+ | |valign="top"|Fetches data from the server using an .rsp, .pysp or .jssp server side page. Use fetch() to retrieve custom data from the server. | ||
+ | |- | ||
+ | |valign="top"|Lianja.OData_Create(url, data) | ||
+ | |valign="top"|See [[ODATA_CREATE()]] | ||
+ | |- | ||
+ | |valign="top"|Lianja.OData_Read(url) | ||
+ | |valign="top"|See [[ODATA_READ()]] | ||
+ | |- | ||
+ | |valign="top"|Lianja.OData_ReadHTML(url) | ||
+ | |valign="top"|See See [[ODATA_READ()]] | ||
+ | |- | ||
+ | |valign="top"|Lianja.OData_ReadJSON(url) | ||
+ | |valign="top"|See See [[ODATA_READ()]] | ||
+ | |- | ||
+ | |valign="top"|Lianja.OData_ReadImage(url) | ||
+ | |valign="top"|See See [[ODATA_READ()]] | ||
+ | |- | ||
+ | |valign="top"|Lianja.OData_Update(url, data) | ||
+ | |valign="top"|See [[ODATA_UPDATE()]] | ||
+ | |- | ||
+ | |valign="top"|Lianja.OData_UpdateHTML(url, text) | ||
+ | |valign="top"|See [[ODATA_UPDATE()]] | ||
+ | |- | ||
+ | |valign="top"|Lianja.OData_UpdateJSON(url, jsontext) | ||
+ | |valign="top"| | ||
+ | |- | ||
+ | |valign="top"|Lianja.OData_Delete(url, data) | ||
+ | |valign="top"|See [[ODATA_DELETE()]] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | <code lang='javascript'> | ||
+ | // | ||
+ | // Lianja Node.js module test | ||
+ | // | ||
+ | // On windows: | ||
+ | // | ||
+ | // cd C:\lianja\cloudserver\tenants\public\wwwroot\library\LianjaWebFramework\LianjaCloudDataServices\node\ | ||
+ | // npm link | ||
+ | // cd C:\lianja\cloudserver\tenants\public\wwwroot\library\LianjaWebFramework\LianjaCloudDataServices\node\lianjaclouddataservices\ | ||
+ | // node test.js | ||
+ | // | ||
+ | // on Linux: | ||
+ | // | ||
+ | // cd /opt/lianja/cloudserver/tenants/public/wwwroot/library/LianjaWebFramework/LianjaCloudDataServices/node/ | ||
+ | // npm link | ||
+ | // cd /opt/lianja/cloudserver/tenants/public/wwwroot/library/LianjaWebFramework/LianjaCloudDataServices/node/lianjaclouddataservices/ | ||
+ | // node test.js | ||
+ | // | ||
+ | // on MacOS: | ||
+ | // | ||
+ | // cd /Users/shared/Lianja/cloudserver/tenants/public/wwwroot/library/LianjaWebFramework/LianjaCloudDataServices/node/lianjaclouddataservices/ | ||
+ | // node test.js | ||
+ | // | ||
+ | |||
+ | const Lianja = require("lianjaclouddataservices"); | ||
+ | |||
+ | // All Lianja methods are asynchronous as required by Node.js | ||
+ | |||
+ | var rc = Lianja.login("admin", "admin").then(ok => | ||
+ | { | ||
+ | console.log("Lianja.login() - " + (ok ? "successful" : "failed")); | ||
+ | if (ok) performOperations() | ||
+ | }); | ||
+ | |||
+ | function performOperations() | ||
+ | { | ||
+ | Lianja.evaluate("username()").then(result => | ||
+ | { | ||
+ | console.log("username - " + result); | ||
+ | }); | ||
+ | |||
+ | Lianja.evaluate("etos(date()) + ' ' + time()").then(result => | ||
+ | { | ||
+ | console.log("Lianja.evaluate() - " + result); | ||
+ | }); | ||
+ | |||
+ | Lianja.OData_Read("/southwind/employees?$top=1").then(result => | ||
+ | { | ||
+ | console.log("Lianja.OData_Read()"); | ||
+ | console.log(result); | ||
+ | }); | ||
+ | |||
+ | Lianja.OData_ReadHTML("/southwind/employees?$select=notes&$filter=lastname eq 'Buchanan'").then(result => | ||
+ | { | ||
+ | console.log("Lianja.OData_ReadHTML()"); | ||
+ | console.log(result); | ||
+ | }); | ||
+ | |||
+ | Lianja.OData_ReadImage("/southwind/employees?$select=photo&$filter=lastname eq 'Buchanan'").then(result => | ||
+ | { | ||
+ | console.log("Lianja.OData_ReadImage()"); | ||
+ | console.log("size="+result.length); | ||
+ | }); | ||
+ | }; | ||
+ | </code> | ||
+ | |||
+ | [[Category:Lianja Server]] | ||
+ | [[Category:Lianja v9.6]] | ||
+ | [[Category:OData Functions|* Node.js]] |
Revision as of 01:24, 28 April 2024
Node.js is an open-source and cross-platform JavaScript runtime environment.
Node.js runs the V8 JavaScript engine, the core of Google Chrome, outside of the browser. This allows Node.js to be very performant.
A Node.js app runs in a single process, without creating a new thread for every request. Node.js provides a set of asynchronous I/O primitives in its standard library that prevent JavaScript code from blocking and generally, libraries in Node.js are written using non-blocking paradigms, making blocking behavior the exception rather than the norm.
Contents
Lianja Cloud Data Services Node module
Lianja Cloud Server includes a Node.js module lianjaclouddataservices enabling Node.js applications to connect to a local or remote Lianja Cloud Server and perform a variety of operations.
Installing the Lianja Cloud Data Services Node module
The simplest way to use the Node.js module module is by creating a symbolic link using "npm link".
On Windows:
cd C:\lianja\cloudserver\tenants\public\wwwroot\library\LianjaWebFramework\LianjaCloudDataServices\node\ npm link
On Linux:
cd /opt/lianja/cloudserver/tenants/public/wwwroot/library/LianjaWebFramework/LianjaCloudDataServices/node/ npm link
Testing the installation:
On Windows:
cd C:\lianja\cloudserver\tenants\public\wwwroot\library\LianjaWebFramework\LianjaCloudDataServices\node\lianjaclouddataservices\
node test.js
On Linux:
cd /opt/lianja/cloudserver/tenants/public/wwwroot/library/LianjaWebFramework/LianjaCloudDataServices/node/lianjaclouddataservices/ node test.js
On MacOS:
cd /Users/shared/Lianja/cloudserver/tenants/public/wwwroot/library/LianjaWebFramework/LianjaCloudDataServices/node/lianjaclouddataservices node test.js
Using the Lianja Cloud Data Services module in Node Applications
Load the module into your Node.js application
const Lianja = require("Lianjaclouddataservices")
Exported functions. All are asynchronous returning a "Promise" (see example usage below).
See OData URIs for details of OData URIs and OData Operators for all the OData operators.
Module Methods
Function | Description |
---|---|
Lianja.login(host, user, password) | Login and connect to to a local or remote Cloud Server. To connect locally specify the host as http: //localhost:8001 |
Lianja.logout() | Logout from the local or remote Cloud Server. |
Lianja.evaluate(expr) | Evaluates LianjaScript expression and returns the result asynchronously. |
Lianja.evaluatePython(expr) | Evaluates Python expression and returns the result asynchronously. |
Lianja.evaluateJavaScript(expr) | Evaluates JavaScript expression and returns the result asynchronously. |
Lianja.fetch(url) | Fetches data from the server using an .rsp, .pysp or .jssp server side page. Use fetch() to retrieve custom data from the server. |
Lianja.OData_Create(url, data) | See ODATA_CREATE() |
Lianja.OData_Read(url) | See ODATA_READ() |
Lianja.OData_ReadHTML(url) | See See ODATA_READ() |
Lianja.OData_ReadJSON(url) | See See ODATA_READ() |
Lianja.OData_ReadImage(url) | See See ODATA_READ() |
Lianja.OData_Update(url, data) | See ODATA_UPDATE() |
Lianja.OData_UpdateHTML(url, text) | See ODATA_UPDATE() |
Lianja.OData_UpdateJSON(url, jsontext) | |
Lianja.OData_Delete(url, data) | See ODATA_DELETE() |
// // Lianja Node.js module test // // On windows: // // cd C:\lianja\cloudserver\tenants\public\wwwroot\library\LianjaWebFramework\LianjaCloudDataServices\node\ // npm link // cd C:\lianja\cloudserver\tenants\public\wwwroot\library\LianjaWebFramework\LianjaCloudDataServices\node\lianjaclouddataservices\ // node test.js // // on Linux: // // cd /opt/lianja/cloudserver/tenants/public/wwwroot/library/LianjaWebFramework/LianjaCloudDataServices/node/ // npm link // cd /opt/lianja/cloudserver/tenants/public/wwwroot/library/LianjaWebFramework/LianjaCloudDataServices/node/lianjaclouddataservices/ // node test.js // // on MacOS: // // cd /Users/shared/Lianja/cloudserver/tenants/public/wwwroot/library/LianjaWebFramework/LianjaCloudDataServices/node/lianjaclouddataservices/ // node test.js // const Lianja = require("lianjaclouddataservices"); // All Lianja methods are asynchronous as required by Node.js var rc = Lianja.login("admin", "admin").then(ok => { console.log("Lianja.login() - " + (ok ? "successful" : "failed")); if (ok) performOperations() }); function performOperations() { Lianja.evaluate("username()").then(result => { console.log("username - " + result); }); Lianja.evaluate("etos(date()) + ' ' + time()").then(result => { console.log("Lianja.evaluate() - " + result); }); Lianja.OData_Read("/southwind/employees?$top=1").then(result => { console.log("Lianja.OData_Read()"); console.log(result); }); Lianja.OData_ReadHTML("/southwind/employees?$select=notes&$filter=lastname eq 'Buchanan'").then(result => { console.log("Lianja.OData_ReadHTML()"); console.log(result); }); Lianja.OData_ReadImage("/southwind/employees?$select=photo&$filter=lastname eq 'Buchanan'").then(result => { console.log("Lianja.OData_ReadImage()"); console.log("size="+result.length); }); };