![](/img/trans.png)
[英]how to call a javascript class function from a another file in node js?
[英]How to call a javascript function inside another function in node js
我有一个文件index.js
如下。 当我试图调用一个异步函数getConn
在其他功能createThumbnails
。 但是我在 catch 块中收到错误"failed to connect to DEDC: 1433 - self signed certificate"
。
const sharp = require('sharp');
const sql = require('mssql')
// CONNECTION CONFIGURATION OF BASE DB
async function getConn() {
try {
const config = {
user: 'sa_user',
password: '*******',
server: 'DEDC',
database: 'DEMO_BASE'
}
const pool = await new sql.ConnectionPool(config)
const req=await pool.connect()
const conn = await req.request()
return conn;
} catch (err) {
return err;
}
};
const createThumbnails = async() => {
try{
var conn = await getConn();
const query = `exec DBBASE.get_client_info`
var clientusers = await conn.query(query);
} catch (err) {
return err;
}
}
createThumbnails()
我如何在createThumbnails
准确调用getConn
函数。 请帮忙。 提前致谢
这是因为您正在使用与函数同名的变量。
尝试不同的名称:
var conn = await getConn();
const query = `exec DBBASE.get_client_info`
var clientusers = await conn.query(query);
你会遇到所谓的hoisting
。 凯尔辛普森对这个话题有很好的解释
var getConn = await getConn();
这意味着getConn
将在赋值之前首先被初始化,这相当于
var getConn // initialized
getConn = await getConn() // assignment
然后结果你得到了错误
这里的解决方案是将其存储在不同的变量名中,例如
var conn = await getConn();
async function getConn() { return { query: async () => { console.log("query called"); }, }; } const createThumbnails = async () => { try { var conn = await getConn(); const query = `exec DBBASE.get_client_info`; var clientusers = await conn.query(query); } catch (err) { console.log(err); } }; createThumbnails();
我们需要在 DB 配置中使用trustServerCertificate: true
,即在const config
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.