首页 > 解决方案 > 在我的本地机器上调试逻辑应用程序功能时,我收到 ESOCKET 错误

问题描述

大家好,当我尝试在本地机器上调试逻辑应用程序功能时,它给了我一个 Esocket 错误。我在Mac机器上工作,一切正常,最近转移到Windows机器尝试设置开发环境,它不允许我在本地调试该功能。我正在将一个 csv 文件推送到数据库中。该函数仅读取以“,”分隔的 csv 文件,并使用生成的 sql 模式和标题行模式加载到临时表中。

这就是当我调试它并通过失眠推送数据时它所显示的。

在此处输入图像描述

这是我正在编写的代码的确切副本。IT 在 const connection = new sql.connectionPool 命令上失败。

const mu = require("../lib/myUtil");    
const sql = require('mssql');        
const csv = require('csvtojson');    
const settings = require('../lib/settings');    

module.exports = async function(context, req) {
    context.log('Write Air BnB Roster.');

if (req.body.data) {
    var incomingData = req.body.data;
    var header_names = [];

    var records = await csv({ maxRowLength: 65535 }).fromString(incomingData).on('header', (header) => {
        header_names = header;
    }).on('error', (err) => {
        console.log("csv err: " + err)
    });

    console.log("parsed data: " + records.length);

    //Process Empty Data
    if (records.length == 0) {
        context.res = {
            status: 200,
            /* Defaults to 200 */
            body: {
                "total": records.length,
                "rowsAffected": 0,
                "headerCount": header_names.length
            }
        };
        return;

}
    const conn = new sql.ConnectionPool(settings.prodDBOpts);
    await conn.connect();  

    // --------- Change Table Name ---------
    const table = new sql.Table('[dbo].[stg_arise_employee]');
    table.create = false;
    // --------- Paste Below --------------
    table.columns.add('RecordDate', sql.DateTime, { nullable: true })
    table.columns.add('IBID', sql.Int, { nullable: true })
    table.columns.add('IBName', sql.VarChar(60), { nullable: true })
    table.columns.add('AriseUserID', sql.Int, { nullable: true })
    table.columns.add('CSPID', sql.Int, { nullable: true })
    table.columns.add('Firstname', sql.VarChar(40), { nullable: true })
    table.columns.add('Lastname', sql.VarChar(40), { nullable: true })
    table.columns.add('email', sql.VarChar(60), { nullable: true })
    table.columns.add('Role', sql.VarChar(40), { nullable: true })
    table.columns.add('SupportResourceAriseUSERID', sql.Int, { nullable: true })
    table.columns.add('SupportResourceCSPID', sql.Int, { nullable: true })
    table.columns.add('SupportResourceName', sql.VarChar(40), { nullable: true })
    table.columns.add('Wave', sql.VarChar(40), { nullable: true })
    table.columns.add('WaveStartDate', sql.DateTime, { nullable: true })
    table.columns.add('Application', sql.VarChar(40), { nullable: true })
    table.columns.add('ApplicationID', sql.Int, { nullable: true })
    table.columns.add('OffboardDate', sql.DateTime, { nullable: true })
    table.columns.add('AirbnbID', sql.Int, { nullable: true })
    table.columns.add('ZendeskID', sql.VarChar(20), { nullable: true })
    table.columns.add('ScorebuddyID', sql.VarChar(40), { nullable: true })
    table.columns.add('Customfield4', sql.VarChar(40), { nullable: true })
    table.columns.add('Customfield5', sql.VarChar(40), { nullable: true })
    table.columns.add('Customfield6', sql.VarChar(40), { nullable: true })
    table.columns.add('Customfield7', sql.VarChar(40), { nullable: true })
    table.columns.add('Customfield8', sql.VarChar(40), { nullable: true })
    table.columns.add('Customfield9', sql.VarChar(40), { nullable: true })
    table.columns.add('Customfield10', sql.VarChar(40), { nullable: true })


    // ---------  Paste Above --------- 
    records.forEach((data) => {
        table.rows.add(
            //  --------- PASTE BELOW --------- 
            mu.validateDate2(data['RecordDate']),
            mu.validateNumber(data['IBID']),
            mu.validateString(data['IB Name']),
            mu.validateNumber(data['Arise UserID']),
            mu.validateNumber(data['CSPID']),
            mu.validateName2(data['Firstname']),
            mu.validateName2(data['Lastname']),
            mu.validateString(data['email']),
            mu.validateString(data['Role']),
            mu.validateNumber(data['SupportResourceAriseUSERID']),
            mu.validateNumber(data['SupportResourceCSPID']),
            mu.validateString(data['SupportResourceName']),
            mu.validateString(data['Wave']),
            mu.validateDate3(data['Wave Start Date']),
            mu.validateProgram(data['Application']),
            mu.validateNumber(data['Application ID']),
            mu.validateDate2(data['Offboard Date']),
            mu.validateNumber(data['AirbnbID']),
            mu.validateString(data['ZendeskID']),
            mu.validateString(data['Scorebuddy ID']),
            mu.validateString(data['Customfield4']),
            mu.validateString(data['Customfield5']),
            mu.validateString(data['Customfield6']),
            mu.validateString(data['Customfield7']),
            mu.validateString(data['Customfield8']),
            mu.validateString(data['Customfield9']),
            mu.validateString(data['Customfield10'])
            //  --------- PASTE ABOVE --------- 
        );
    });

    context.log("Async function started!");
    const request = new sql.Request(conn);

    try {
        const results = await request.bulk(table);
        context.log("Rows affected: " + results.rowsAffected);

        context.res = {
            status: 200,
            /* Defaults to 200 */
            body: {
                "total": records.length,
                "rowsAffected": results.rowsAffected,
                "headerCount": header_names.length
            }
        };

        await conn.close();
        console.log("connection closed.")
    } catch (error) {
        context.log(error);
        context.res = {
            status: 400,
            body: error
        };
    }
} else {
    context.res = {
        status: 200,
        /* Defaults to 200 */
        body: {
            "total": 0,
            "rowsAffected": 0,
            "headerCount": 0
        }
    };
}
};

标签: azurelogic

解决方案


更新:我正在运行节点版本 12.xx 我将节点降级到版本 10.14.1 并且它可以工作我猜该版本与我使用的库不兼容。


推荐阅读