Tag: node mysql

将释放一个MySQL连接之前将返回允许通过垃圾收集释放所述连接?

我的问题涉及从节点内发布的mysql连接。 如果我在连接被释放之前返回,那么连接仍然会被持有,还是垃圾回收会对我进行处理? 我问的原因是,我曾经有一个问题,后来的连接被拒绝了,因为我已经使用了整个连接池而没有释放它们。 这个问题似乎没有发生,所以我只是想尽可能澄清。 提前致谢。 格兰特。 sql.getConnection(function (err, connection) { if (err) { res.send(4xx,"error"); return; } if (req.body.premium) { //try premium first //code snipped return; } //code snipped connection.release(); });

Nodejs node-mysql查询结果数据types

我无法弄清楚如何从callback函数中的mysql查询中获取数据。 例如,我有如下查询: mysqlConnection.query('SELECT COUNT(*) from card AS count', function (err, result) { if (err) { throw err; } else { console.log(Type.of(result)); console.log("card count is as: " + result.count); console.log("Card count is: " + result["COUNT(*)"]); console.log(result); } }); 这打印出来: [Function: Array] card count is as: undefined Card count is: undefined [ { 'COUNT(*)': 3 } ] […]

从刚插入的行检索数据(MySql和Node.js)

如果我有一个像这样的查询: var queryString = "INSERT INTO pid SET title = '" + randomTitle + "', poc = '" + random + "';" connection.query(queryString, function(err, rows, fields) { …(do something here) }); ,有没有一种方法,我可以检索刚刚插入的行的信息,而不执行新的查询(在我的具体情况下,我想要自动生成的主键值)。 例如,我可以使用“查询”对象(下面)的构造,然后可能使用其中一个query.oncallback来检索刚刚插入的行的信息? var query = connection.query(queryString, function(err, rows, fields) { query.on('fields', function(fields) { … get the field information? }); query.on('result', function(row) { .. get […]

node.js mysql查询不能运行,因为数字附近有引号

我有这个mysql的查询写在node.js mysql和restify要在HTTP GET中执行。 https://github.com/felixge/node-mysql var api_get_func = function (app, url_path) { function respond(req, res, next) { var id= req.query.id; var limit = req.query.limit; var query_str = "SELECT table.sw_type, " + "FROM users " + "WHERE (id = ?) " + "LIMIT ?"; //limit var var_arr = [id, limit]; var query = connection.query(query_str, var_arr, function (err, […]

当你连接时调用`release`而不是`destroy`?

我正在询问有关https://github.com/mysqljs/mysql 。 我有点困惑, 在实践中 destroy和release什么区别。 考虑这样的代码: pool.getConnection(function(err, conn) { if (err) throw err; console.log("Connected"); conn.release(); }); 这将永远挂起。 如果我切换release destroy程序终止。 项目页面中的例子有这样一段代码: connection.release(); // Don't use the connection here, it has been returned to the pool. 所以两者都终止 – 就像只有release不终止。 我的问题是 – 什么是使用release呢?

节点MySQL以最快的速度执行多个查询

哪个是最快速的方法获取到MYSQL的查询,然后返回到输出: console.log('查询完成',结果)“ 有没有更好的方法? 请解释你的答案! 谢谢! 方法1: var connection = mysql.createConnection({multipleStatements: true}); connection.query('SELECT ?; SELECT ?', [1, 2], function(err, results) { if (err) throw err; console.log('queries done', results); }); 方法2: const Db = mysql.createPool({ connectionLimit: 7, dateStrings: true, multipleStatements: true }); Db.getConnection(function(err, connection) { if(err) console.log(err); connection.query(` SELECT "1" AS "first"; SELECT "2" AS "second";`, function(err, […]

Lambda从MySQL RDS获取数据,但超时

我正在使用Lambda连接到RDS与VPC和正常工作。 我可以成功从MySQL获取数据,但Lambda会超时。 CloudWatch日志: 2017-02-15T18:56:18.609Z [RowDataPacket {userInfo:'xxx'}] END RequestId:xxx REPORT RequestId:xxx持续时间:300001.69 ms计费时间:300000 ms内存大小:512 MB使用的最大内存:22 MB 2017-02-15T19:01:18.306Z xxx任务在300.00秒后超时 Handle.js db.getPersonInfo("xxx", function (err, result) { console.log(result); const response = { statusCode: 200, body: JSON.stringify({ message: 'test', input: event, }), }; callback(null, response); }); DB.js var getPersonInfo = function(userId, callback){ pool.getConnection(function(err, connection){ var sql = 'SELECT userInfo FROM user […]

数据库url在MySQL工作台,但不是node.js(getaddrinfo ENOTFOUND)

我在Heroku中build立了一个MySQL数据库,并通过MySQL Workbench成功连接到它。 我已经使用felixge的node-mysql插件尝试从我的应用程序(用coffeescript编写)连接到它,build立连接如下: db = mysql.createConnection({ host: 'server-name.cleardb.com/heroku_randomletters?reconnect=true' user: 'mysn' password: 'mypwd' }) 不幸的是我得到一个Error: getaddrinfo ENOTFOUND控制台中的Error: getaddrinfo ENOTFOUND和应用程序崩溃。 我知道这个代码块的错误,因为删除它的工作正常。 初步的谷歌search暗示,这个错误是因为数据库URL是错误的,但它是复制粘贴到我放到MySQL工作台,这工作正常。 我已经通过js2coffee手动运行了这段代码,并且它正在被正确地转换,所以它不是CS搞砸了对象或任何东西。

无法从node.js服务器连接到本地主机数据库

尝试连接到我的本地主机数据库时遇到了很多麻烦。 我试过使用mysql和mysql-simple节点模块,但在这两种情况下,我只是无法得到它连接。 以下是我用'mysql'模块的内容: var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', port : '8000', user : 'uber', password : 'pass', }); connection.connect(function(err) { if (err) throw err; console.log('Connection Successful'); }); connection.query('USE someDB', function(err) { if (err) throw err; console.log('Query Successful'); }); 在这里,我使用了'mysql-simple'模块: var database = require('mysql-simple'); database.init('uber', 'pass', 'mysql', 'localhost', 8000); database.querySingle('SELECT […]

具有Mysql数据库的Nodejs返回值

我有以下代码。 我对nodejs&js比较陌生 我想在1.日志中获取值,但我得到了undefined。 只有2.日志输出到日志。 我从callback和https://github.com/felixge/node-mysql读取nodeJS返回值,但是没有关于返回值的示例。 我不知道如何使用node-mysql页面中的给定示例的return语句。 exports.location_internal = function(req,res){ var r = getExternalLocation(2); // 1. log 的console.log(R); res.send(r); } var getExternalLocation = function(id){ pool.getConnection(function(err,connection){ 如果(犯错)抛出犯错; var response = {}; connection.query(“select * from external_geo_units where geo_unit_id =”+ id,function(err,rows){ 如果(犯错)抛出犯错; response.data = rows; // 2. log 的console.log(响应); 回复回复; }); connection.release(); }); };