--- layout: docu redirect_from: - /docs/api/nodejs/reference - /docs/api/nodejs/reference/ - /docs/clients/nodejs/reference title: Node.js API --- ## Modules
object
object
object
object
void
* [.all(sql, ...params, callback)](#module_duckdb..Connection+all) ⇒ void
* [.arrowIPCAll(sql, ...params, callback)](#module_duckdb..Connection+arrowIPCAll) ⇒ void
* [.arrowIPCStream(sql, ...params, callback)](#module_duckdb..Connection+arrowIPCStream) ⇒
* [.each(sql, ...params, callback)](#module_duckdb..Connection+each) ⇒ void
* [.stream(sql, ...params)](#module_duckdb..Connection+stream)
* [.register_udf(name, return_type, fun)](#module_duckdb..Connection+register_udf) ⇒ void
* [.prepare(sql, ...params, callback)](#module_duckdb..Connection+prepare) ⇒ Statement
* [.exec(sql, ...params, callback)](#module_duckdb..Connection+exec) ⇒ void
* [.register_udf_bulk(name, return_type, callback)](#module_duckdb..Connection+register_udf_bulk) ⇒ void
* [.unregister_udf(name, return_type, callback)](#module_duckdb..Connection+unregister_udf) ⇒ void
* [.register_buffer(name, array, force, callback)](#module_duckdb..Connection+register_buffer) ⇒ void
* [.unregister_buffer(name, callback)](#module_duckdb..Connection+unregister_buffer) ⇒ void
* [.close(callback)](#module_duckdb..Connection+close) ⇒ void
* [~Statement](#module_duckdb..Statement)
* [.sql](#module_duckdb..Statement+sql) ⇒
* [.get()](#module_duckdb..Statement+get)
* [.run(sql, ...params, callback)](#module_duckdb..Statement+run) ⇒ void
* [.all(sql, ...params, callback)](#module_duckdb..Statement+all) ⇒ void
* [.arrowIPCAll(sql, ...params, callback)](#module_duckdb..Statement+arrowIPCAll) ⇒ void
* [.each(sql, ...params, callback)](#module_duckdb..Statement+each) ⇒ void
* [.finalize(sql, ...params, callback)](#module_duckdb..Statement+finalize) ⇒ void
* [.stream(sql, ...params)](#module_duckdb..Statement+stream)
* [.columns()](#module_duckdb..Statement+columns) ⇒ [Array.<ColumnInfo>
](#ColumnInfo)
* [~QueryResult](#module_duckdb..QueryResult)
* [.nextChunk()](#module_duckdb..QueryResult+nextChunk) ⇒
* [.nextIpcBuffer()](#module_duckdb..QueryResult+nextIpcBuffer) ⇒
* [.asyncIterator()](#module_duckdb..QueryResult+asyncIterator)
* [~Database](#module_duckdb..Database)
* [.close(callback)](#module_duckdb..Database+close) ⇒ void
* [.close_internal(callback)](#module_duckdb..Database+close_internal) ⇒ void
* [.wait(callback)](#module_duckdb..Database+wait) ⇒ void
* [.serialize(callback)](#module_duckdb..Database+serialize) ⇒ void
* [.parallelize(callback)](#module_duckdb..Database+parallelize) ⇒ void
* [.connect(path)](#module_duckdb..Database+connect) ⇒ Connection
* [.interrupt(callback)](#module_duckdb..Database+interrupt) ⇒ void
* [.prepare(sql)](#module_duckdb..Database+prepare) ⇒ Statement
* [.run(sql, ...params, callback)](#module_duckdb..Database+run) ⇒ void
* [.scanArrowIpc(sql, ...params, callback)](#module_duckdb..Database+scanArrowIpc) ⇒ void
* [.each(sql, ...params, callback)](#module_duckdb..Database+each) ⇒ void
* [.stream(sql, ...params)](#module_duckdb..Database+stream)
* [.all(sql, ...params, callback)](#module_duckdb..Database+all) ⇒ void
* [.arrowIPCAll(sql, ...params, callback)](#module_duckdb..Database+arrowIPCAll) ⇒ void
* [.arrowIPCStream(sql, ...params, callback)](#module_duckdb..Database+arrowIPCStream) ⇒ void
* [.exec(sql, ...params, callback)](#module_duckdb..Database+exec) ⇒ void
* [.register_udf(name, return_type, fun)](#module_duckdb..Database+register_udf) ⇒ this
* [.register_buffer(name)](#module_duckdb..Database+register_buffer) ⇒ this
* [.unregister_buffer(name)](#module_duckdb..Database+unregister_buffer) ⇒ this
* [.unregister_udf(name)](#module_duckdb..Database+unregister_udf) ⇒ this
* [.registerReplacementScan(fun)](#module_duckdb..Database+registerReplacementScan) ⇒ this
* [.tokenize(text)](#module_duckdb..Database+tokenize) ⇒ ScriptTokens
* [.get()](#module_duckdb..Database+get)
* [~TokenType](#module_duckdb..TokenType)
* [~ERROR](#module_duckdb..ERROR) : number
* [~OPEN_READONLY](#module_duckdb..OPEN_READONLY) : number
* [~OPEN_READWRITE](#module_duckdb..OPEN_READWRITE) : number
* [~OPEN_CREATE](#module_duckdb..OPEN_CREATE) : number
* [~OPEN_FULLMUTEX](#module_duckdb..OPEN_FULLMUTEX) : number
* [~OPEN_SHAREDCACHE](#module_duckdb..OPEN_SHAREDCACHE) : number
* [~OPEN_PRIVATECACHE](#module_duckdb..OPEN_PRIVATECACHE) : number
### duckdb~Connection
**Kind**: inner class of [duckdb
](#module_duckdb)
* [~Connection](#module_duckdb..Connection)
* [.run(sql, ...params, callback)](#module_duckdb..Connection+run) ⇒ void
* [.all(sql, ...params, callback)](#module_duckdb..Connection+all) ⇒ void
* [.arrowIPCAll(sql, ...params, callback)](#module_duckdb..Connection+arrowIPCAll) ⇒ void
* [.arrowIPCStream(sql, ...params, callback)](#module_duckdb..Connection+arrowIPCStream) ⇒
* [.each(sql, ...params, callback)](#module_duckdb..Connection+each) ⇒ void
* [.stream(sql, ...params)](#module_duckdb..Connection+stream)
* [.register_udf(name, return_type, fun)](#module_duckdb..Connection+register_udf) ⇒ void
* [.prepare(sql, ...params, callback)](#module_duckdb..Connection+prepare) ⇒ Statement
* [.exec(sql, ...params, callback)](#module_duckdb..Connection+exec) ⇒ void
* [.register_udf_bulk(name, return_type, callback)](#module_duckdb..Connection+register_udf_bulk) ⇒ void
* [.unregister_udf(name, return_type, callback)](#module_duckdb..Connection+unregister_udf) ⇒ void
* [.register_buffer(name, array, force, callback)](#module_duckdb..Connection+register_buffer) ⇒ void
* [.unregister_buffer(name, callback)](#module_duckdb..Connection+unregister_buffer) ⇒ void
* [.close(callback)](#module_duckdb..Connection+close) ⇒ void
#### connection.run(sql, ...params, callback) ⇒ void
Run a SQL statement and trigger a callback when done
**Kind**: instance method of [Connection
](#module_duckdb..Connection)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### connection.all(sql, ...params, callback) ⇒ void
Run a SQL query and triggers the callback once for all result rows
**Kind**: instance method of [Connection
](#module_duckdb..Connection)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### connection.arrowIPCAll(sql, ...params, callback) ⇒ void
Run a SQL query and serialize the result into the Apache Arrow IPC format (requires arrow extension to be loaded)
**Kind**: instance method of [Connection
](#module_duckdb..Connection)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### connection.arrowIPCStream(sql, ...params, callback) ⇒
Run a SQL query, returns a IpcResultStreamIterator that allows streaming the result into the Apache Arrow IPC format
(requires arrow extension to be loaded)
**Kind**: instance method of [Connection
](#module_duckdb..Connection)
**Returns**: Promise\*
|
| callback | |
#### connection.each(sql, ...params, callback) ⇒ void
Runs a SQL query and triggers the callback for each result row
**Kind**: instance method of [Connection
](#module_duckdb..Connection)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### connection.stream(sql, ...params)
**Kind**: instance method of [Connection
](#module_duckdb..Connection)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
#### connection.register\_udf(name, return_type, fun) ⇒ void
Register a User Defined Function
**Kind**: instance method of [Connection
](#module_duckdb..Connection)
**Note**: this follows the wasm udfs somewhat but is simpler because we can pass data much more cleanly
| Param |
| --- |
| name |
| return_type |
| fun |
#### connection.prepare(sql, ...params, callback) ⇒ Statement
Prepare a SQL query for execution
**Kind**: instance method of [Connection
](#module_duckdb..Connection)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### connection.exec(sql, ...params, callback) ⇒ void
Execute a SQL query
**Kind**: instance method of [Connection
](#module_duckdb..Connection)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### connection.register\_udf\_bulk(name, return_type, callback) ⇒ void
Register a User Defined Function
**Kind**: instance method of [Connection
](#module_duckdb..Connection)
| Param |
| --- |
| name |
| return_type |
| callback |
#### connection.unregister\_udf(name, return_type, callback) ⇒ void
Unregister a User Defined Function
**Kind**: instance method of [Connection
](#module_duckdb..Connection)
| Param |
| --- |
| name |
| return_type |
| callback |
#### connection.register\_buffer(name, array, force, callback) ⇒ void
Register a Buffer to be scanned using the Apache Arrow IPC scanner
(requires arrow extension to be loaded)
**Kind**: instance method of [Connection
](#module_duckdb..Connection)
| Param |
| --- |
| name |
| array |
| force |
| callback |
#### connection.unregister\_buffer(name, callback) ⇒ void
Unregister the Buffer
**Kind**: instance method of [Connection
](#module_duckdb..Connection)
| Param |
| --- |
| name |
| callback |
#### connection.close(callback) ⇒ void
Closes connection
**Kind**: instance method of [Connection
](#module_duckdb..Connection)
| Param |
| --- |
| callback |
### duckdb~Statement
**Kind**: inner class of [duckdb
](#module_duckdb)
* [~Statement](#module_duckdb..Statement)
* [.sql](#module_duckdb..Statement+sql) ⇒
* [.get()](#module_duckdb..Statement+get)
* [.run(sql, ...params, callback)](#module_duckdb..Statement+run) ⇒ void
* [.all(sql, ...params, callback)](#module_duckdb..Statement+all) ⇒ void
* [.arrowIPCAll(sql, ...params, callback)](#module_duckdb..Statement+arrowIPCAll) ⇒ void
* [.each(sql, ...params, callback)](#module_duckdb..Statement+each) ⇒ void
* [.finalize(sql, ...params, callback)](#module_duckdb..Statement+finalize) ⇒ void
* [.stream(sql, ...params)](#module_duckdb..Statement+stream)
* [.columns()](#module_duckdb..Statement+columns) ⇒ [Array.<ColumnInfo>
](#ColumnInfo)
#### statement.sql ⇒
**Kind**: instance property of [Statement
](#module_duckdb..Statement)
**Returns**: sql contained in statement
**Field**:
#### statement.get()
Not implemented
**Kind**: instance method of [Statement
](#module_duckdb..Statement)
#### statement.run(sql, ...params, callback) ⇒ void
**Kind**: instance method of [Statement
](#module_duckdb..Statement)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### statement.all(sql, ...params, callback) ⇒ void
**Kind**: instance method of [Statement
](#module_duckdb..Statement)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### statement.arrowIPCAll(sql, ...params, callback) ⇒ void
**Kind**: instance method of [Statement
](#module_duckdb..Statement)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### statement.each(sql, ...params, callback) ⇒ void
**Kind**: instance method of [Statement
](#module_duckdb..Statement)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### statement.finalize(sql, ...params, callback) ⇒ void
**Kind**: instance method of [Statement
](#module_duckdb..Statement)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### statement.stream(sql, ...params)
**Kind**: instance method of [Statement
](#module_duckdb..Statement)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
#### statement.columns() ⇒ [Array.<ColumnInfo>
](#ColumnInfo)
**Kind**: instance method of [Statement
](#module_duckdb..Statement)
**Returns**: [Array.<ColumnInfo>
](#ColumnInfo) - - Array of column names and types
### duckdb~QueryResult
**Kind**: inner class of [duckdb
](#module_duckdb)
* [~QueryResult](#module_duckdb..QueryResult)
* [.nextChunk()](#module_duckdb..QueryResult+nextChunk) ⇒
* [.nextIpcBuffer()](#module_duckdb..QueryResult+nextIpcBuffer) ⇒
* [.asyncIterator()](#module_duckdb..QueryResult+asyncIterator)
#### queryResult.nextChunk() ⇒
**Kind**: instance method of [QueryResult
](#module_duckdb..QueryResult)
**Returns**: data chunk
#### queryResult.nextIpcBuffer() ⇒
Function to fetch the next result blob of an Arrow IPC Stream in a zero-copy way.
(requires arrow extension to be loaded)
**Kind**: instance method of [QueryResult
](#module_duckdb..QueryResult)
**Returns**: data chunk
#### queryResult.asyncIterator()
**Kind**: instance method of [QueryResult
](#module_duckdb..QueryResult)
### duckdb~Database
Main database interface
**Kind**: inner property of [duckdb
](#module_duckdb)
| Param | Description |
| --- | --- |
| path | path to database file or :memory: for in-memory database |
| access_mode | access mode |
| config | the configuration object |
| callback | callback function |
* [~Database](#module_duckdb..Database)
* [.close(callback)](#module_duckdb..Database+close) ⇒ void
* [.close_internal(callback)](#module_duckdb..Database+close_internal) ⇒ void
* [.wait(callback)](#module_duckdb..Database+wait) ⇒ void
* [.serialize(callback)](#module_duckdb..Database+serialize) ⇒ void
* [.parallelize(callback)](#module_duckdb..Database+parallelize) ⇒ void
* [.connect(path)](#module_duckdb..Database+connect) ⇒ Connection
* [.interrupt(callback)](#module_duckdb..Database+interrupt) ⇒ void
* [.prepare(sql)](#module_duckdb..Database+prepare) ⇒ Statement
* [.run(sql, ...params, callback)](#module_duckdb..Database+run) ⇒ void
* [.scanArrowIpc(sql, ...params, callback)](#module_duckdb..Database+scanArrowIpc) ⇒ void
* [.each(sql, ...params, callback)](#module_duckdb..Database+each) ⇒ void
* [.stream(sql, ...params)](#module_duckdb..Database+stream)
* [.all(sql, ...params, callback)](#module_duckdb..Database+all) ⇒ void
* [.arrowIPCAll(sql, ...params, callback)](#module_duckdb..Database+arrowIPCAll) ⇒ void
* [.arrowIPCStream(sql, ...params, callback)](#module_duckdb..Database+arrowIPCStream) ⇒ void
* [.exec(sql, ...params, callback)](#module_duckdb..Database+exec) ⇒ void
* [.register_udf(name, return_type, fun)](#module_duckdb..Database+register_udf) ⇒ this
* [.register_buffer(name)](#module_duckdb..Database+register_buffer) ⇒ this
* [.unregister_buffer(name)](#module_duckdb..Database+unregister_buffer) ⇒ this
* [.unregister_udf(name)](#module_duckdb..Database+unregister_udf) ⇒ this
* [.registerReplacementScan(fun)](#module_duckdb..Database+registerReplacementScan) ⇒ this
* [.tokenize(text)](#module_duckdb..Database+tokenize) ⇒ ScriptTokens
* [.get()](#module_duckdb..Database+get)
#### database.close(callback) ⇒ void
Closes database instance
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param |
| --- |
| callback |
#### database.close\_internal(callback) ⇒ void
Internal method. Do not use, call Connection#close instead
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param |
| --- |
| callback |
#### database.wait(callback) ⇒ void
Triggers callback when all scheduled database tasks have completed.
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param |
| --- |
| callback |
#### database.serialize(callback) ⇒ void
Currently a no-op. Provided for SQLite compatibility
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param |
| --- |
| callback |
#### database.parallelize(callback) ⇒ void
Currently a no-op. Provided for SQLite compatibility
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param |
| --- |
| callback |
#### database.connect(path) ⇒ Connection
Create a new database connection
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param | Description |
| --- | --- |
| path | the database to connect to, either a file path, or `:memory:` |
#### database.interrupt(callback) ⇒ void
Supposedly interrupt queries, but currently does not do anything.
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param |
| --- |
| callback |
#### database.prepare(sql) ⇒ Statement
Prepare a SQL query for execution
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param |
| --- |
| sql |
#### database.run(sql, ...params, callback) ⇒ void
Convenience method for Connection#run using a built-in default connection
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### database.scanArrowIpc(sql, ...params, callback) ⇒ void
Convenience method for Connection#scanArrowIpc using a built-in default connection
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### database.each(sql, ...params, callback) ⇒ void
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### database.stream(sql, ...params)
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
#### database.all(sql, ...params, callback) ⇒ void
Convenience method for Connection#apply using a built-in default connection
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### database.arrowIPCAll(sql, ...params, callback) ⇒ void
Convenience method for Connection#arrowIPCAll using a built-in default connection
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### database.arrowIPCStream(sql, ...params, callback) ⇒ void
Convenience method for Connection#arrowIPCStream using a built-in default connection
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### database.exec(sql, ...params, callback) ⇒ void
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param | Type |
| --- | --- |
| sql | |
| ...params | \*
|
| callback | |
#### database.register\_udf(name, return_type, fun) ⇒ this
Register a User Defined Function
Convenience method for Connection#register_udf
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param |
| --- |
| name |
| return_type |
| fun |
#### database.register\_buffer(name) ⇒ this
Register a buffer containing serialized data to be scanned from DuckDB.
Convenience method for Connection#unregister_buffer
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param |
| --- |
| name |
#### database.unregister\_buffer(name) ⇒ this
Unregister a Buffer
Convenience method for Connection#unregister_buffer
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param |
| --- |
| name |
#### database.unregister\_udf(name) ⇒ this
Unregister a UDF
Convenience method for Connection#unregister_udf
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param |
| --- |
| name |
#### database.registerReplacementScan(fun) ⇒ this
Register a table replace scan function
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param | Description |
| --- | --- |
| fun | Replacement scan function |
#### database.tokenize(text) ⇒ ScriptTokens
Return positions and types of tokens in given text
**Kind**: instance method of [Database
](#module_duckdb..Database)
| Param |
| --- |
| text |
#### database.get()
Not implemented
**Kind**: instance method of [Database
](#module_duckdb..Database)
### duckdb~TokenType
Types of tokens return by `tokenize`.
**Kind**: inner property of [duckdb
](#module_duckdb)
### duckdb~ERROR : number
Check that errno attribute equals this to check for a duckdb error
**Kind**: inner constant of [duckdb
](#module_duckdb)
### duckdb~OPEN\_READONLY : number
Open database in readonly mode
**Kind**: inner constant of [duckdb
](#module_duckdb)
### duckdb~OPEN\_READWRITE : number
Currently ignored
**Kind**: inner constant of [duckdb
](#module_duckdb)
### duckdb~OPEN\_CREATE : number
Currently ignored
**Kind**: inner constant of [duckdb
](#module_duckdb)
### duckdb~OPEN\_FULLMUTEX : number
Currently ignored
**Kind**: inner constant of [duckdb
](#module_duckdb)
### duckdb~OPEN\_SHAREDCACHE : number
Currently ignored
**Kind**: inner constant of [duckdb
](#module_duckdb)
### duckdb~OPEN\_PRIVATECACHE : number
Currently ignored
**Kind**: inner constant of [duckdb
](#module_duckdb)
## ColumnInfo : object
**Kind**: global typedef
**Properties**
| Name | Type | Description |
| --- | --- | --- |
| name | string
| Column name |
| type | [TypeInfo
](#TypeInfo) | Column type |
## TypeInfo : object
**Kind**: global typedef
**Properties**
| Name | Type | Description |
| --- | --- | --- |
| id | string
| Type ID |
| [alias] | string
| SQL type alias |
| sql_type | string
| SQL type name |
## DuckDbError : object
**Kind**: global typedef
**Properties**
| Name | Type | Description |
| --- | --- | --- |
| errno | number
| -1 for DuckDB errors |
| message | string
| Error message |
| code | string
| 'DUCKDB_NODEJS_ERROR' for DuckDB errors |
| errorType | string
| DuckDB error type code (eg, HTTP, IO, Catalog) |
## HTTPError : object
**Kind**: global typedef
**Extends**: [DuckDbError
](#DuckDbError)
**Properties**
| Name | Type | Description |
| --- | --- | --- |
| statusCode | number
| HTTP response status code |
| reason | string
| HTTP response reason |
| response | string
| HTTP response body |
| headers | object
| HTTP headers |