问题描述
我是一名初级开发人员,我在前端使用 ReactJS 时遇到了在 node.js、express.js 中进行的发布查询的问题。
我有两个文件夹: 客户端和服务器
在服务器文件夹中,我使用的是 node.js 和 express.js。 下面是服务器端 index.js 文件中的代码:
在客户端文件夹中,我使用的是 node.js 和 express.js。 下面是来自客户端的 App.js 文件中的代码:
我的服务器运行在 3306 端口,代码正常,客户端作为服务器端。
我遇到的问题是数据库。 我在 sequel pro «employeeSystem » 中创建了一个数据库,其中包含一个表 «employee »。
而且我无法在表中插入值。
错误信息 1:
错误:连接丢失:服务器关闭了连接。 在 Protocol.end (/Users/ana/Desktop/crud-tutorial/server/node_modules/mysql/lib/protocol/Protocol.js:112:13)
错误信息 2: { 致命的:真的, 代码:'PROTOCOL_CONNECTION_LOST' } 错误:致命错误后无法入队查询。
我对 MySQL 和我在 Sequel Pro 中创建的数据库有点迷茫。
在浏览器中是 localhost:3000
并且 localhost:3306 运行良好
如果您能提供帮助,在此先感谢您!
解决方法
我知道这是前一段时间问过的,但我想我会回答以防万一你仍然被卡住。
问题在于您使用的 mysql.createConnection()
旨在在查询完成后立即打开和关闭,而不是在您的应用的生命周期内保持打开状态。
对于持久连接,您需要使用 mysql.createPool()
,它专为与应用程序一样持久的连接而设计。或者,您可以在需要与数据库交互时打开连接,并在交互完成后关闭连接。
这里有一些链接:
createPool()
- 参数与 createConnection()
相同
connection.end()
- 接收一个函数