节点 events.js:174 throw er; // 未处理的“错误”事件

Posted

技术标签:

【中文标题】节点 events.js:174 throw er; // 未处理的“错误”事件【英文标题】:Node events.js:174 throw er; // Unhandled 'error' event 【发布时间】:2019-08-21 11:54:01 【问题描述】:

请求 API 时出现错误,它在任何 win 服务器上崩溃。有人可以帮忙吗?

这是我的代码的一部分:

app.get("/js/2806/api/products/getAllDrugs", (req, res) => 


    const connection = getDBConnection()

    const queryString = "SELECT * FROM tbl_drug";

    connection.query(queryString, (err, rows, fields) => 

        if (err) 
            console.log("Failed to query for drugs: " + err);
            // res.sendStatus(500);
            res.json(
                ErrorDetail: 
                    code: -1,
                    msg: err.code
                
            );
            res.end();
            return
        

        const drugs = rows.map((row) => 
            return 
                id: row.id,
                storeId: row.drugStoreId,
                drugName: row.drugName,
                description: row.drugDsc,
                drugUsing: row.drugUsing,
                drugDoseId: row.drugDoseId,
                categoryId: row.categoryId
            ;
        )

        res.json(
            ErrorDetail: 
                code: 0
            ,
            Response: drugs
        )
    )


);

错误:连接丢失:服务器关闭了连接。在 Socket 的 Protocol.end (C:\Users\Administrator\AppData\Local\CaptainCure\n s\mysql\lib\protocol\Protocol.js:112:13)。 (C:\Users\Administrator\AppData\Local\Captain odules\mysql\lib\Connection.js:97:28) 在 Socket。 (C:\Users\Administrator\AppData\Local\Captain odules\mysql\lib\Connection.js:502:10) 在 Socket.emit (events.js:194:15) 在 endReadableNT (_stream_readable.js:1125:12 ) 在 process._tickCallback (internal/process/next_tick.js:63:19) 在 Connection._handleProtocolError (C:\Users\Administrator\AppData\ ainCure\node_modules\mysql\lib\Connection.js) 处发出“错误”事件:425:8) 在 Protocol.emit (events.js:189:13) 在 Protocol._delegateError (C:\Users\Administrator\AppData\Local\Ca node_modules\mysql\lib\protocol\Protocol.js:390:10 ) 在 Socket 的 Protocol.end (C:\Users\Administrator\AppData\Local\CaptainCure\ns\mysql\lib\protocol\Protocol.js:116:8)。 (C:\Users\Administrator\AppData\Local\Captain odules\mysql\lib\Connection.js:97:28) I— 匹配原始堆栈跟踪的行 ...] 在 process._tickCallback Cinternal/process/next_tick.js: 63:19> [nodemon I - wait in is (nodemon] si ing 'node app.js -erver is running on port: 3000 ode events.js:174 throw er; // 未处理的 'error' 事件是 (nodemon] 启动'node app.js' -erver 正在端口:3000 上运行

【问题讨论】:

你能告诉我们getDBConnection()函数返回什么吗? @R.Sarkar function getDBConnection() return mySql.createConnection( host: 'localhost', user: 'root', password: '***', database: 'captaincure' ) 可能重复***.com/questions/20210522/…希望对你有帮助 【参考方案1】:

由于服务器已经在后台运行,所以我们必须重新启动。 如果你同时使用 iterm 和终端,那么你需要确保你只使用另一个你必须关闭。

【讨论】:

始终打开一个终端,并从我的端口使用一个进程

以上是关于节点 events.js:174 throw er; // 未处理的“错误”事件的主要内容,如果未能解决你的问题,请参考以下文章

节点聊天给了 throw er; //未处理的错误事件

如何修复('throw er; //未处理'错误'事件')代码生命周期?

events.js:72 throw er; // Unhandled 'error' event

throw er; // Unhandled 'error' event

throw er; // Unhandled 'error' event

Nodejs 得到 throw er; // 未处理的“错误”事件 [重复]