Tag: node mysql

使用promise来处理node.js中的MySQL返回值

我有一个python背景,目前正在迁移到node.js. 由于其asynchronous性质,我有调整到node.js的问题。 例如,我试图从MySQL函数返回一个值。 function getLastRecord(name) { var connection = getMySQL_connection(); var query_str = "SELECT name, " + "FROM records " + "WHERE (name = ?) " + "LIMIT 1 "; var query_var = [name]; var query = connection.query(query_str, query_var, function (err, rows, fields) { //if (err) throw err; if (err) { //throw err; console.log(err); logger.info(err); […]

INSERT INTO失败,使用node-mysql

我正在尝试用node.js插入一些数据。 我已经写了下面的代码,并通过npm安装了MySQL支持,但是我没有把表INSERT INTO到表中。 这是我的代码: var mysql = require('mysql'); function BD() { var connection = mysql.createConnection({ user: 'root', password: '', host: 'localhost', port: 3306, database: 'nodejs' }); return connection; } app.post("/user/create", function(req, res) { var objBD = BD(); var post = { username: req.body.username, password: req.body.password }; objBD.query('INSERT INTO users VALUES ?', post, function(error) { if […]

如何在多个核心上线性扩展NodeJS?

我正在做一个NodeJS与Java的快速性能testing。 所select的简单用例是查询MySQL数据库中的单个表。 初步结果如下: Platform | DB Connections | CPU Usage | Memory Usage | Requests/second ==============================|================|===========|===============|================ Node 0.10/MySQL | 20 | 34% | 57M | 1295 JBoss EAP 6.2/JPA | 20 | 100% | 525M | 4622 Spring 3.2.6/JDBC/Tomcat 7.0 | 20 | 100% | 860M | 4275 请注意,Node的CPU和内存使用率比Java低,但吞吐量也只有三分之一! 然后我意识到Java正在利用我的CPU上的所有四个核心,而Node只在一个核心上运行。 所以我改变了节点代码来整合集群模块,现在它正在利用所有四个核心。 以下是新的结果: Platform | DB […]

重现MySQL错误:服务器closures连接(node.js)

我试图重现一个MySQL错误,我看到我的节点mysql库 EC2上的node.js应用程序: 连接丢失:服务器closures连接。 我无法在本地重现错误 – 杀死数据库被我的代码处理得很好 – 它只是每隔几秒重新检查一次,重新连接到数据库一旦重新启动。 在EC2上,它发生在凌晨4点左右,但数据库仍然运行良好。 我想 用我的本地mysql重现崩溃 在我的mysql helper模块中添加我需要的任何逻辑来处理这个问题 这是我的node.js应用程序中的错误: 2012-10-22T08:45:40.518Z – error:uncaughtException date = Mon Oct 22 2012 08:45:40 GMT + 0000(UTC),pid = 14184,uid = 0,gid = 0,cwd = / home / ec2 -user / my-app,execPath = / usr / bin / nodejs,version = v0.6.18,argv = [/ usr / local […]

Node.js MySQL需要持久连接

我需要一个持久的MySQL连接为我的节点networking应用程序。 问题是这种情况一天发生几次: Error: Connection lost: The server closed the connection. at Protocol.end (/var/www/n/node_modules/mysql/lib/protocol/Protocol.js:73:13) at Socket.onend (stream.js:79:10) at Socket.EventEmitter.emit (events.js:117:20) at _stream_readable.js:895:16 at process._tickCallback (node.js:415:13) error: Forever detected script exited with code: 8 error: Forever restarting script for 2 time info: socket.io started 这是我的连接代码: // Yes I know multipleStatements can be dangerous in the wrong hands. […]

节点MySQL转义LIKE语句

如何在node-mysql中转义MySQL LIKE语句? 东西沿线 "SELECT * FROM card WHERE name LIKE '%" + connection.escape(req.body.search) + "%'" 结果是 'SELECT * FROM card WHERE name LIKE \'%\'hello\'%\'' 这是一个语法错误。 如果我使用替代语法 connection.query("SELECT * FROM card WHERE name LIKE '%?%'", req.body.search, function () {}); 导致类似的语法错误。 我也试过了 connection.query("SELECT * FROM card WHERE name LIKE ?", '%' + req.body.search + '%', function () […]

如何正确地传递mysql连接到express.js路由

我试图找出传递一个mysql连接(使用node-mysql)在express.js的路由之间的最佳方式。 我dynamic地添加每个路由(使用路由中的每个文件循环),这意味着我不能只传递连接到需要它的路由。 我要么把它传递给每一条路线,要么根本没有。 我不喜欢把它传递给不需要它的想法,所以我创build了一个dbConnection.js,路由可以单独导入,如果他们需要。 问题是,我不认为我做得正确。 截至目前,我的dbConnection.js包含: var mysql = require('mysql'); var db = null; module.exports = function () { if(!db) { db = mysql.createConnection({ socketPath: '/tmp/mysql.sock', user: '*********', password: '*********', database: '**********' }); } return db; }; 我正在使用以下命令将其导入每条path: var db = require('../dbConnection.js'); var connection = new db(); 但我想这样做: var connection = require('../dbConnection.js'); 但是,当我尝试这样做的时候,当我尝试查询时,出现连接没有方法“查询”的错误。