Tag: mysql

Node.js + MySQL – 处理事务

我正在使用express和node-mysql驱动程序在node.js上构build应用程序。 当我需要进行一系列数据库插入/更新时,我的应用程序中有几个案例。 我希望他们在一个事务中,如果第二个或第三个失败,以前的插入完全回滚。 目前,我这样做的方式是有一种中间件,在请求到达时执行START TRANSACTION 。 在处理请求的过程中,如果发生任何错误,我会捕获此错误,并执行ROLLBACK 。 如果没有错误发生,我发送响应给浏览器之前做一个COMMIT 。 不过,现在我担心,当多个用户同时访问应用程序时,这不起作用,因为如果另一个请求尝试使用START TRANSACTION开始自己的事务,MySQL会强制执行提交! 我目前只使用一个节点的实例,并为所有请求使用一个MySQL连接。 如果我的担忧是有效的,有人能请教我吗?如何获得交易支持?

Redis子/ pub和php / nodejs

开始使用redis作为子/ pub系统来显示mysql数据库结果的新项目。 所以如果有更新,我想从mysql发布这些更新到我的网页。 我的问题是,哪个选项会更好? 选项1:我应该通过nodejs和socket.io来做所有的事吗? 这意味着创build一个连接到redis的nodejs脚本,订阅我需要监听的通道,在nodejs中使用mysql查询db的更新,如果更新发布mysql行,然后在通过socket.io连接到nodejs的html中获取新的数据和它的过程来显示结果? 选项2:有一个PHP脚本查询MySQL和Redis的PHP客户端发布的任何更新通道? 不知道还有什么需要从这里设置。 我仍然需要在这个选项中包含nodejs? 或者我只是基于这一切如何工作? 底线是我想通过mysql数据库显示结果给用户使用redis sub / pubfunction。

当使用poolConnection或CreateConnection felixge / node-mysql

我为我的应用程序使用https://github.com/felixge/node-mysql时,为什么使用 db_pool = mysql.createConnection(db); 要么 db_pool = mysql.createPool(db); 有什么区别? 何时使用它们?

找不到模块`mysql` node.js

我是nodejs的新手。 要连接mysql,我使用该命令在节点上安装了mysql , npm install mysql 安装时没有出现任何错误。 然后我试着执行下面的代码, var mysql = require("mysql"); 但它试图执行该显示以下错误。 C:\node\mysql>node app.js module.js:340 throw err; ^ Error: Cannot find module 'mysql' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (C:\node\mysql\app.js:1:75) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) 我尝试了一些build议像全局安装mysql使用, […]

查找返回的mysql结果中的行数(nodejs)

当使用felixge的mysql作为node.js时,我怎样才能得到结果对象的返回行数呢? 我有一个相当昂贵的查询,所以我不想先运行COUNT(*) ,然后再运行一个查询。

node.js + MySQL&JSON结果 – callback问题&没有响应客户端

我想使用node.js查询mySQL数据库,并返回结果作为JSON在移动应用程序中使用。 不幸的是,我的请求只是sorting超时,服务器没有任何好的2分钟,直到日志文件显示我的console.log() statements。 而且,callback不会返回任何结果。 这只是空的。 // Check dependencies var http = require('http'); // Create the http server. // reference: http://net.tutsplus.com/tutorials/javascript-ajax/node-js-for-beginners/ http.createServer(function(request, response) { // Attach listener on end event. request.on('close', function() { console.log('request'); // run asynchronous getSQL(function(err, result) { console.log('json:', result); response.writeHead(200, { 'Content-Type' : 'x-application/json' }); // Send data as JSON string. response.end(result); }); […]

使用Sequelize进行多对多关系的简单示例

我正在尝试使用Sequelize构build表之间多对多关系的简单示例。 不过,这似乎比我预料的要棘手。 这是我目前的代码( ./db.js文件导出Sequelize连接实例)。 const Sequelize = require("sequelize"); const sequelize = require("./db"); var Mentee = sequelize.define('mentee', { id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true }, name: { type: Sequelize.STRING } }); var Question = sequelize.define('question', { id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true }, text: { type: Sequelize.STRING } }); var MenteeQuestion = […]

node.js mysql错误:ECONNREFUSED

为什么我不能连接到MySQL服务器? 在同一台服务器上,Apache / PHP服务器正在运行,并且连接没有问题! var mysql_link = { host : 'localhost', port : 3308, database: 'nodetest', user : 'root', password : 'xxx' }; var connection = mysql.createConnection(mysql_link); connection.connect(function(err){ console.log(err); if(err != null){ response.write('Error connecting to mysql:' + err+'\n'); } }); connection.end(); 错误 { [Error: connect ECONNREFUSED] code: 'ECONNREFUSED', errno: 'ECONNREFUSED', syscall: 'connect', fatal: true } […]

创build或更新Sequelize

我在我的Nodejs项目中使用Sequelize,我发现一个问题,我很难解决。 基本上我有一个cron从服务器获取对象的数组,而不是将其作为对象插入到我的数据库(对于这种情况下,漫画)。 但是,如果我已经有一个对象,我必须更新它。 基本上我有一个对象的数组,可以使用BulkCreate()方法。 但是当Cron重新开始的时候,它并不能解决问题,所以我需要使用一个upsert真正的标志进行某种更新。 主要问题:我必须有一个callback,所有这些创build或更新后才会触发一次。 有没有人有一个想法,我该怎么做? 迭代一个对象数组..创build或更新它,然后得到一个单一的callback后? 感谢您的关注

一个查询中的node-mysql多个语句

我正在使用nodejs 10.26 + express 3.5 + node-mysql 2.1.1 + MySQL-Server Version: 5.6.16 。 我得到了4 DELETE的,只想要1个数据库请求,所以我连接了DELETE命令的“;”…但总是失败。 var sql_string = "DELETE FROM user_tables WHERE name = 'Testbase';"; sql_string += "DELETE FROM user_tables_structure WHERE parent_table_name = 'Testbase';"; sql_string += "DELETE FROM user_tables_rules WHERE parent_table_name = 'Testbase';"; sql_string += "DELETE FROM user_tables_columns WHERE parent_table_name = 'Testbase';"; connection.query(sql_string, function(err, rows, […]