Не удалось найти указанный модуль — узел oracledb

У меня есть приложение node, работающее с использованием пакета npm oracledb. Я могу успешно подключиться к удаленной базе данных oracle12c. Теперь проблема в том, что в производственной коробке я не могу установить все необходимые компоненты, поэтому я заархивировал рабочий код и распаковал его в новую коробку Windows (клиентские библиотеки node.js и oracle установлены с правильным путем). Но когда я запускаю сервер узла, я получаю сообщение об ошибке. Есть ли что-то, что мне не хватает? Пожалуйста, направляйте. Спасибо

C:\node_modules\oracledb\lib\oracledb.js:38
    throw err;
    ^

Error: The specified module could not be found.
\\?\C:\node_modules\oracledb\build\Release\oracledb.node
    at Object.Module._extensions..node (module.js:664:18)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)
    at Function.Module._load (module.js:489:3)
    at Module.require (module.js:579:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\node_modules\oracledb\lib\oracledb.js:35:19)
    at Module._compile (module.js:635:30)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: `node server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

person user557657    schedule 13.12.2017    source источник


Ответы (1)


Ознакомьтесь с инструкциями по установке для копирования двоичных файлов между компьютерами. Возможно, вам не хватает распространяемого пакета Visual Studio.

Если у вас есть клиент Oracle 12.2, установите распространяемый компонент Visual Studio 2013. Для клиента Oracle 12.1 установите распространяемый компонент Visual Studio 2010. Для клиента Oracle 11.2 установите распространяемый пакет Visual Studio 2005.

Предстоящая версия node-oracledb v2 имеет готовые двоичные файлы (и улучшенные сообщения об ошибках начальной загрузки). Вы можете просто попробовать установить разрабатываемую версию v2, используя npm install oracledb@dev Рабочая версия скоро появится.

person Christopher Jones    schedule 13.12.2017
comment
Да, я использовал описанный выше подход, и это сработало. Я думаю, что в документе не упоминалось, какую версию распространяемого пакета Visual Studio использовать для версии 12.2. Да, это работало с распространяемым Visual Studio 2013. Спасибо - person user557657; 14.12.2017
comment
Производственная версия v2 отсутствует, поэтому просто используйте «npm install oracledb» и убедитесь, что у вас есть Instant Client и соответствующий VS Redistributable. Нет необходимости в компиляторе или Python 2.7 - person Christopher Jones; 14.12.2017
comment
У меня сработала переустановка распространяемых пакетов VS 2010, как в этом выпуске: github.com/oracle/node -oracledb/issues/651 - person JuanZe; 22.08.2018