从Node.JS中的外部.js文件调用方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Node.JS中的外部.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);
时,发生了这个错误: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(){
返回一个Promise
,你试图在var db = require('./db.js'); db.saveInDb(data);
中调用它,因此错误。适当地执行promise(取决于db.js文件中的内容),这可以解决。
以上是关于从Node.JS中的外部.js文件调用方法的主要内容,如果未能解决你的问题,请参考以下文章