繁体   English   中英

如何在节点js中的另一个函数中调用javascript函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM