如何在node.js中模拟PROTOCOL_CONNECTION_LOST错误?

时间:2019-01-13 12:47:44

标签: mysql node.js

如何在MySQL中为node.js模拟“ PROTOCOL_CONNECTION_LOST”错误?

如果出现错误,我的应用程序将崩溃,并且我不知道如何重现此错误。

谢谢。

2 个答案:

答案 0 :(得分:0)

听起来真的像您的应用程序崩溃了,因为没有处理该错误。在这种情况下,您可能需要检入初始化MySQL连接的文件。

对于错误,“ PROTOCOL_CONNECTION_LOST”只是一个通用错误对象。如果您想将其扔到应用程序中(实际上并没有停止MySQL的运行):

const err = new Error('Connection lost: The server closed the connection.');
err.fatal = true;
err.code = 'PROTOCOL_CONNECTION_LOST';
throw err;

将其放在要引发错误的代码行中。

如果要模拟MySql引发此错误,则一种(不推荐的方式)是侵入lib。 Connections对象可以访问Protocol对象,该对象具有一个隐藏的方法_delegateError,该方法是在发生协议错误时触发的方法。来源:https://github.com/mysqljs/mysql/blob/master/lib/protocol/Protocol.js

答案 1 :(得分:0)

这是丢失连接协议的解决方案。这个解决方案解决了我

这里是数据库连接

const mysql = require('mysql');

const connection=mysql.createConnection({ host:'localhost', user:'root', password:'******', database:'db_name' }); connection.connect(function(error){ if(!!error) console.log(error); else console.log('SQL Database Connected!'); }); module.exports = connection; `

只需使用pm2运行节点服务器 例如pm2启动app.js install the npm pm2 package