Articles of node mysql

节点mysql的连接池查询callback从不被调用

有没有人遇到一个问题与MySQL从哪里汇集的查询callback从来没有被称为? 我正在创build一个池,然后用它来执行如下的多个查询: const mysql = require('mysql') const config = { mysql: {host: …, user: …, password: …}, … } config.mysql.connectionLimit = 20 let pool = mysql.createPool(config.mysql) …further down in my test code const toDelete = [ 'test_db_2017-03-22_11-10-21', 'test_db_2017-03-21_11-10-21', 'test_db_2016-03-21_11-10-21', 'test_db_2015-03-21_11-10-21', 'test_db_2014-03-21_11-10-21', 'test_db_2013-03-21_11-10-21', ] const deleteTargetsCreated = toDelete.map(dbname => { return new Promise((resolve, reject) => { […]

加快MySQL中的大量查询语句的性能

我有作为服务器上的cron作业运行的node.js脚本。 它asynchronous接收来自外部数据源的数据(几个并发请求),并使用多个查询语句更新数据库,其中UPDATE查询以分号分隔。 一个8000-UPDATES多查询运行约55秒。 有没有办法来加快整个数据库更新过程? 单个查询非常简单 – 就像 UPDATE my_table SET field1 = smth WHERE id = some_id; 该索引是为id字段创build的。

使用node-mysql和mysql-queue将多个查询结果发送到res.render()

我[新到node.js和一般编程]有两个mysql查询结果(成员信息和成员可以参加的研讨会列表),并需要将它们发送到res.render() .jade模板(会员编辑页)。 为此,我使用node-mysql和mysql-queue模块。 问题是我不知道如何传递callback函数来呈现queue.execute()完成之前的响应,所以我做了解决方法,并把前两个查询在队列(MySQL的队列function),执行队列,然后添加第三具有呈现模板的callback函数的“ 虚拟查询 ”。 我的问题是我可以使用这种解决方法,什么是正确的方式来使用这个模块? exports.memberEdit = function (req, res) { var q = connection.createQueue(); var membersResults, htmlDateSigned, htmlBirthDate, servicesResults; q.query("SELECT * FROM members WHERE id= ?;", req.id, function (err, results) { console.log("Članovi: " + results[0]); membersResults = results[0]; htmlDateSigned = dater.convertDate(results[0].dateSigned); htmlBirthDate = dater.convertDate(results[0].birthDate); }); q.query("SELECT * FROM services", function (err, results) […]

node-orm-transaction:是否可以在一个mysql连接中为所有客户端执行事务?

目前我只连接到数据库一次,当我开始我的节点应用程序,刚刚我加载我的所有模型之后,我的应用程序已准备好通过socket.io rpc处理任何请求。 我需要实现的逻辑 – 如果客户端执行复杂的请求,并且如果链中至less有一个操作失败 – 例如 – 所有sql请求都成功完成,但没有发送带有新密码的电子邮件 – 回滚所有内容并显示错误。 我问,因为我记得 – 例如在PHP中,所有进程与db有不同的连接,这就是为什么所有的转换都是独立的,不能交叉的,但是对于节点来说,它只是一个具有asynchronous请求的进程,理论上可以交叉。 这只是我在node.js上的第一个应用程序。 是否有可能使所有客户端1 MySQL连接,或者我需要连接到MySQL,从socket.io中的每个请求中的远程文件检索所有模型?

存储过程返回的结果,我不想要的

我使用node-mysql来调用一个存储过程,结果包含一些模式,我不想像fieldCount,affectedRows ,如何忽略这些? 当我使用mysql命令来调用程序时,没有这些模式。 程序: DELIMITER \\ CREATE PROCEDURE QUERY_USER (IN p_name VARCHAR(15)) BEGIN SELECT id,name FROM user WHERE name=p_name; END\\ 结果: [ [ { "id": 2, "name": "codar" }, { "id": 3, "name": "codar" } ], { "fieldCount": 0, "affectedRows": 0, "insertId": 0, "serverStatus": 34, "warningCount": 0, "message": "", "protocol41": true, "changedRows": 0 } ]

ExpressJS中的“VARCHAR”和服务器硬盘中的映像存储图像在数据库中的位置

我如何在ExpressJS中做到这一点? 使用VARCHAR数据types而不是任何BLOB或其他binary数据types来存储图像在数据库中的位置。 然后将该映像存储在服务器harddisk中可能的映像空间/public/images/ 我是新来expression。 任何示例来实现这个?

node.js mysql客户端未定义

我正在尝试创build一个mysql数据库到node.js服务器。 我已经通过命令提示符安装了mysql模块: npm install mysql 然后我执行下面的代码: var Client = require('mysql').Client; console.log(Client); 控制台显示undefined 。 也就是说, Client是undefined 。 请告诉我为什么它是undefined ? 我正在学习本教程http://utahjs.com/2010/09/22/nodejs-and-mysql-introduction/

用Node和MySQL / MariaDB构build一个可伸缩的API

在使用依赖于MySQL的Node.js构buildAPI或Web应用程序时(或者在我的情况下是MariaDB),什么被认为是处理和pipe理连接的最佳实践? 根据node-mysql的文档,似乎有两种使用方法: var connection = mysql.createConnection({…}); app.get("/", function(req, res) { connection.query("SELECT * FROM ….", function(error, result) { res.json(result); }); }); – 要么 – var pool = mysql.createPool({…}); app.get("/", function(req, res) { pool.getConnection(error, connection) { if (error) { console.log("Error getting new connection from pool"); } else { connection.query("SELECT * FROM ….", function(error, result) { connection.release(); res.json(result); […]

无法从nodejs + node-mysql中获取模块的返回值

我的本地主机上有下面的代码: /model/company.js var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'root', password : 'admin' }); module.exports = { get: function(){ connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) { return rows; }) } } /routes/company.js var Company = require('../models/company') var express = require('express'); var router = express.Router(); router.route('/companies').get(function(req, res){ […]

从节点,mysql,koa中获取数据

我想从我的MySQL数据库中使用Koa和mysql节点包得到一些数据。 我正在查看co-mysql ,但是自述文件build议直接使用thunkify 。 所以我做了以下几点: const query = thunkify(connection.query.bind(connection)); 这似乎工作,我现在可以做的: app.use(function * main() { const races = yield query( "SELECT * FROM `races` where '2016-01-19' between start_date and end_date" )(function(err, rows) { // rows is the data I need }); }); 但是,我无法find一种方法来将thunk中的行数据返回到我的种族variables中。 我logging它,并显示正确的数据,但是当我尝试将其传回时,它总是返回undefined。 我从callback中尝试了几个方法,但我似乎无法弄清楚: return rows生成yield rows (使callback生成器函数) return yield rows … 我经常得到: TypeError: You […]