We are proud to share our inclusion in the 2024 Gartner Magic Quadrant for Data Integration Tools. We believe this recognition reflects the differentiated business outcomes CData delivers to our customers.
Get the Report →Query Odoo Data through ODBC in Node.js
Use node-odbc to execute SQL queries against Odoo data from Node.js.
Node.js is a JavaScript runtime environment that allows you to run JavaScript code outside of a browser. With the CData ODBC Driver for Odoo, you can access live Odoo data from Node.js apps and scripts. In this article, we walk through installing node-odbc and the required tools to create a simple Node.js app with access to live Odoo data.
With built-in optimized data processing, the CData ODBC Driver offers unmatched performance for interacting with live Odoo data in Node.js. When you issue complex SQL queries from Node.js to Odoo, the driver pushes supported SQL operations, like filters and aggregations, directly to Odoo and utilizes the embedded SQL engine to process unsupported operations client-side (often SQL functions and JOIN operations).
About Odoo Data Integration
Accessing and integrating live data from Odoo has never been easier with CData. Customers rely on CData connectivity to:
- Access live data from both Odoo API 8.0+ and Odoo.sh Cloud ERP.
-
Extend the native Odoo features with intelligent handling of many-to-one, one-to-many, and many-to-many data properties. CData's connectivity solutions also intelligently handle complex data properties within Odoo. In addition to columns with simple values like text and dates, there are also columns that contain multiple values on each row. The driver decodes these kinds of values differently, depending upon the type of column the value comes from:
- Many-to-one columns are references to a single row within another model. Within CData solutions, many-to-one columns are represented as integers, whose value is the ID to which they refer in the other model.
- Many-to-many columns are references to many rows within another model. Within CData solutions, many-to-many columns are represented as text containing a comma-separated list of integers. Each value in that list is the ID of a row that is being referenced.
- One-to-many columns are references to many rows within another model - they are similar to many-to-many columns (comma-separated lists of integers), except that each row in the referenced model must belong to only one in the main model.
- Use SQL stored procedures to call server-side RFCs within Odoo.
Users frequently integrate Odoo with analytics tools such as Power BI and Qlik Sense, and leverage our tools to replicate Odoo data to databases or data warehouses.
Getting Started
Connecting to Odoo Data
If you have not already done so, provide values for the required connection properties in the data source name (DSN). You can use the built-in Microsoft ODBC Data Source Administrator to configure the DSN. This is also the last step of the driver installation. See the "Getting Started" chapter in the help documentation for a guide to using the Microsoft ODBC Data Source Administrator to create and configure a DSN.
To connect, set the Url to a valid Odoo site, User and Password to the connection details of the user you are connecting with, and Database to the Odoo database.
Building node-odbc
In order to connect to Odoo through the CData ODBC Driver, you need to build node-odbc manually (after installing the required tools).
Installing the Required Tools
The following commands install the tools required to build node-odbc (note the -g parameter, which installs the tools globally).
npm i -g windows-build-tools npm i -g node-gyp
Building node-odbc
After installing the required tools, create a directory for the Node.js app and install odbc (which builds the binary for us to use in our Node.js script).
mkdir nodeodbc cd nodeodbc npm i -g node
Querying Odoo from Node.js
With the ODBC Driver installed, a DSN Configured, and node-odbc built, we are ready to query live Odoo data from a Node.js app. The sample code below connects to a specific DSN and queries the res_users table.
myscript.js
const odbc = require('odbc'); async function queryOdoo() { const connection = await odbc.connect(`DSN=CData Odoo Source`); const data = await connection.query('SELECT name, email FROM res_users'); console.log(data); } queryOdoo();
Once you write the app, use node to execute the script:
node myscript.js
Download a free, 30-day trial of the CData ODBC Driver for Odoo and start working with your live Odoo data in Node.js. Reach out to our Support Team if you have any questions.