Oracle¶
Работа Node.js с Oracle осуществляется с использованием модуля node-oracledb
.
Установка¶
Самый простой способ установить node-oracledb
- использовать npm, в репозитории которого хранится уже скомпилированная и настроенная версия модуля.
npm install oracledb --save
При установке модуля через npm для ОС Windows потребуется установка Microsoft Visual C++ 2015.
В некоторых случаях использование в операционной системе уже скомпилированного модуля будет невозможным и потребуется ручная компиляция модуля из исходного кода. В этом случае порядок действий следующий:
- Установить Python версии 2.7;
- Установить компилятор C с поддержкой C++ (подойдет Microsoft Visual C++ 2015);
- Выполнить из директории проекта команду:
npm install oracle/node-oracledb.git#v3.1.2
Для работы в Node.js модуля node-oracledb
вне зависимости от операционной системы, она обязательно должна содержать клиентскую библиотеку Oracle. Например, для Windows x64 ее можно скачать здесь.
Подключение¶
Для подключения к базе данных Oracle используется метод getConnection()
библиотеки node-oracledb
, которому обязательно передаются следующие параметры:
user
- имя пользователя БД;password
- пароль пользователя БД;connectString
- строка подключения в форматеhost/service
, гдеhost
- хост, где запущена БД, аservice
- имя сервиса экземпляра БД.
let oracledb = require('oracledb')
let connection
oracledb
.getConnection({
user: 'user',
password: 'password',
connectString: 'localhost/XXXDB3',
})
.then((conn) => (connection = conn))
.catch((err) => throw err)
Выполнение запросов¶
Чтобы выполнить запрос к базе, используйте метод execute()
.
connection
.execute(`SELECT * FROM cars`)
.then((result) => console.log(result))
.catch((err) => throw err)
Если в запросе вам необходимо использовать переданные с клиента данные, то для безопасности осуществления SQL-инъекции внешние данные передаются в запрос вторым параметром в виде массива.
connection
.execute(`SELECT * FROM cars WHERE model = :model`, [
'Audi',
])
.then((result) => console.log(result))
.catch((err) => throw err)
В самом запросе внешние данные определяются с помощью двоеточия и имени параметра. Но их подстановка будет происходить по порядку: для первой переменной в запросе - первое значение из массива и т. д.
Цель данной статьи - дать минимальные знания, которых достаточных для начала использования в Node.js модуля node-oracledb
. На самом деле он имеет обширное API, позволяющее использовать весь функционал Oracle. Более подробно ознакомиться с возможностями node-oracledb
можно в официальной документации.