[英]Call method from external .js file in Node.JS
我创建了一个连接到 Oracle 数据库的文件db.js
process.env.ORA_SDTZ = 'UTC';
var oracledb = require('oracledb');
exports.saveInDB = async function(data) {
let connection;
try {
let sql, binds, options, result;
binds = [];
connection = await oracledb.getConnection({
user: "user",
password: "pass",
connectString: "localhost/dbname"
});
var start = new Date();
for (var i = 1; i <= 100; i++) {
sql = `INSERT INTO mytab VALUES (:1, :2, :3)`;
binds = [
[i, "Inserted row number => " + i + " =>" + data, 0]
];
options = {
autoCommit: true,
bindDefs: [
{ type: oracledb.NUMBER },
{ type: oracledb.STRING, maxSize: 999 },
{ type: oracledb.NUMBER }
]
};
result = await connection.executeMany(sql, binds, options);
console.log("Inserted row number => ", i);
}
var end = new Date() - start;
console.info('Execution time: %dms', end);
} catch (err) {
console.error(err);
} finally {
if (connection) {
try {
await connection.close();
} catch (err) {
console.error(err);
}
}
}
}
当我想调用var db = require('./db.js'); db.saveInDb(data);
var db = require('./db.js'); db.saveInDb(data);
,出现这个错误: TypeError: db.saveInDb is not a function
。 我尝试使用其他格式来定义像async function saveInDb(data)
这样的方法,但结果没有改变。 我该如何解决这个错误? 我搜索了这个,但无法解决这个问题。 谢谢。
尝试:
export const saveInDB = async function(data) {
let connection;
try {
// my codes....
}
var end = new Date() - start;
console.info('Execution time: %dms', end);
} catch (err) {
console.error(err);
} finally {
if (connection) {
try {
await connection.close();
} catch (err) {
console.error(err);
}
}
}
}
process.env.ORA_SDTZ = 'UTC'; var oracledb = require('oracledb'); const saveInDB = async function(data) { let connection; try { // my codes.... } var end = new Date() - start; console.info('Execution time: %dms', end); } catch (err) { console.error(err); } finally { if (connection) { try { await connection.close(); } catch (err) { console.error(err); } } } } export { saveInDB }
你的方法的问题是async function(){
返回一个你试图在var db = require('./db.js'); db.saveInDb(data);
作为函数调用的Promise
var db = require('./db.js'); db.saveInDb(data);
var db = require('./db.js'); db.saveInDb(data);
, 因此错误。 适当地执行承诺(取决于 db.js 文件中的内容),这可以解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.