首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >浏览器中的Node-oracledb错误“尚未为上下文加载模块名称”

浏览器中的Node-oracledb错误“尚未为上下文加载模块名称”
EN

Stack Overflow用户
提问于 2019-12-15 20:51:03
回答 1查看 208关注 0票数 0

我正在尝试使用node-oracledb从oracle数据库加载数据,而im得到了这个错误:

代码语言:javascript
复制
Error: Module name "select1" has not been loaded yet for context: _. Use require([])

我确实阅读了文档here,但我想不出一个解决方案.Why它会给我这样的错误吗?为什么要感谢你的帮助。

select1.js:

代码语言:javascript
复制
   const oracledb = require('oracledb');
   const dbConfig = require('./dbconfig.js');
   const demoSetup = require('./demosetup.js');
   oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT;
   async function run() {
   let connection;

   try {
   // Get a non-pooled connection

  connection = await oracledb.getConnection(dbConfig);

  await demoSetup.setupBf(connection);  // create the demo table

  var query = await connection.execute(
    // The statement to execute
    `SELECT * From pilote`,

    // The "bind value" 3 for the bind variable ":idbv"
    [],

    // Options argument.  Since the query only returns one
    // row, we can optimize memory usage by reducing the default
    // maxRows value.  For the complete list of other options see
    // the documentation.
    {
      maxRows: 100
      //, outFormat: oracledb.OUT_FORMAT_OBJECT  // query result format
      //, extendedMetaData: true                 // get extra metadata
      //, fetchArraySize: 100                    // internal buffer allocation size for tuning
    });
    //console.log(query.rows)

} catch (err) {
  console.error(err);
} finally {
  if (connection) {
    try {
      // Connections should always be released when not needed
      //await connection.close();
    } catch (err) {
      console.error(err);
    }
  }
}
return query;
}
module.exports.run =  run;

test.js:

代码语言:javascript
复制
(async() =>{
var result = require('./select1').run()
var rs;
rs = (await result).rows
if(rs !== undefined)
{
    document.getElementById('hdr').textContent = rs[0]
}
})()

page.html:

代码语言:javascript
复制
<body>
<h1 id="hdr">hello</h1>
<script src="https://requirejs.org/docs/release/2.3.5/minified/require.js"></script>
<script  src="test.js"></script>
</body>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-16 06:41:16

node-oracledb不会在浏览器中运行,因为它有一个需要访问二进制共享库的二进制组件。标准的Node.js应用程序设计将Node.js作为中间层应用程序服务器,它接受来自浏览器的网络调用,例如REST,并将数据返回给该浏览器。有一些用法变体,例如作为使用Electron的独立应用程序。

如果这对您来说是全新的,那么可以从示例https://github.com/oracle/node-oracledb/blob/master/examples/webappawait.js开始,一直到https://jsao.io/2018/03/creating-a-rest-api-with-node-js-and-oracle-database/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59344070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档