Ошибка node-oracledb: NJS-069 в промежуточном ПО nuxt

#nuxt.js #node-oracledb

Вопрос:

Я могу получить доступ к базе данных и получить данные из своей базы данных Oracle. Но эта ошибка возникает в моей консоли broswer.

введите описание изображения здесь

 import oracledb from 'oracledb'

oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT

export default async function (ctx) {
  let connection

  try {
    connection = await oracledb.getConnection({
      user: 'user',
      password: 'user!1',
      connectString: '127.0.0.1:1521/uat2'
    })
    const result = await connection.execute(
      `SELECT PAGETITLE, ACTIVITYID
       FROM TB_MOULD
       WHERE ACTIVITYID = 'WYDJQHD001'`,
      []
    )
    console.log(result.rows)
  } catch (err) {
    console.error(err)
  } finally {
    if (connection) {
      try {
        await connection.close()
      } catch (err) {
        console.error(err)
      }
    }
  }
}
 

Я предполагаю, что webpack не различает, может ли node-oracledb работать на стороне, отличной от сервера, во время процесса связывания.
У кого-нибудь есть решения?

Комментарии:

1. Какова версия узла? node -v

2. v12.18.3 @kissu

Ответ №1:

Из журнала изменений node-oracledb 5.0:

Пользователи Webpack должны скопировать двоичный файл node-oracledb в подкаталог выходного каталога. Например , если выходной каталог есть dist , то двоичный файл должен быть внутри dist/node_modules/oracledb/build/Release/oracledb-5.0.0-linux-x64.node . Плагин копирования webpack.config.js может сделать это, скопировав node_modules/oracledb/build в каталог с тем же именем. См. Выпуск 1156.

Потенциальная вещь, которую следует рассмотреть, — это использование модулей ES-я не пробовал их в этом контексте.

Комментарии:

1. Я пытался this.it не работает

Ответ №2:

Теперь я должен найти решение.

   if (process.server) {
    const oracledb = require('oracledb')
    oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT
    //......
  }