Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js服务器循环中的SQL查询_Javascript_Mysql_Node.js - Fatal编程技术网

Javascript Node.js服务器循环中的SQL查询

Javascript Node.js服务器循环中的SQL查询,javascript,mysql,node.js,Javascript,Mysql,Node.js,我正在尝试使用Node.js设置服务器。 对于数据库,我使用Xampp。 我想在提供/update时运行updateEngine函数。 一切都在工作,除了代码是循环的,过了一段时间我得到了一个错误。 我使用了node-max\u old\u space\u size=2000000 输出 server is up!! connected as id 38 into the query connected as id 39 into the query 错误 ====JS堆栈跟踪====

我正在尝试使用Node.js设置服务器。 对于数据库,我使用Xampp。 我想在提供/update时运行updateEngine函数。 一切都在工作,除了代码是循环的,过了一段时间我得到了一个错误。 我使用了node-max\u old\u space\u size=2000000

输出

server is up!!  
connected as id 38 
into the query 
connected as id 39
into the query
错误

====JS堆栈跟踪====致命错误:调用并重试上次分配失败-进程内存不足

代码

Xampp

建议:

对你的请求发送响应,即使只是一个简单的200 OK,没有正文。现在它从未响应,因此客户端可能正在超时并自动重试请求

使用启动时创建的数据库连接池,而不是为每个请求创建新的数据库连接。使用连接池效率更高,因为您不会每次都创建和断开连接,这会增加请求的开销和延迟


我发送了一个简单的200响应,但错误仍然存在…该路径将很少使用。这是节点问题还是mysql配置问题?到目前为止,您发布的代码没有其他问题。问题在别处。testtable有100.000个条目,这是问题吗?响应在查询完成之前显示在浏览器中,这可能解释了OOM错误,但肯定不能解释对updateEngine的重复调用。我用sql详细信息更新了我的问题。我能避免这个错误吗?connection.end是否停止查询?在活动监视器节点中,似乎达到了100%,然后我得到了错误。
 69777 ms: Mark-sweep 1398.8 (1456.7) -> 1398.8 (1456.7) MB, 1871.5 / 0 ms [allocation failure] [GC in old space requested].
   71705 ms: Mark-sweep 1398.8 (1456.7) -> 1398.8 (1456.7) MB, 1928.0 / 0 ms [allocation failure] [GC in old space requested].
   73346 ms: Mark-sweep 1398.8 (1456.7) -> 1398.8 (1456.7) MB, 1640.7 / 0 ms [last resort gc].
   75283 ms: Mark-sweep 1398.8 (1456.7) -> 1398.8 (1456.7) MB, 1937.4 / 0 ms [last resort gc].
http = require('http');
var connect = require('connect');
var mysql = require('mysql');
var app = connect();


app.use('/update',updateEngine);

http.createServer(app).listen(8080);
console.log("server is up!!");

function updateEngine(request,response,done) {
    var connection = mysql.createConnection({
        host: 'localhost',
        port: '3306',
        user: 'root',
        password: '',
        database: 'test'
    });
    connection.connect(function(err) {
        if (err) {
            console.error('error connecting: ' + err.stack);
            return;
        }
        console.log('connected as id ' + connection.threadId);
    });

    connection.query('SELECT * FROM `testtable`' , function (error, results, fields) {
        console.log("into the query");
    });
    connection.end();
}
The MySQL server
[mysqld]
user = mysql
port=3306
socket      = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
skip-external-locking
key_buffer = 16M
max_allowed_packet = 500M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M