Tag: mysql

Node-MySQL(felixge)连接问题

我在Ubuntu 10.04 LTS虚拟机上运行Node.js 4.1和Node-Mysql 。 我有一些奇怪的问题,但是,我不知道是什么原因造成的。 我偶尔无法连接到数据库,而其他时间工作正常。 当我无法连接时,我看到连接popup在MySQL端的连接,用户为“未authentication”,状态为“从网上读取”,但几秒钟后消失。 .connect()callback从不会触发,我不知道从哪里去。 我使用从主机到vm的端口转发,其中22个用于SSH,80个用于http请求,但除此之外,一切正常。 mysql上的主机显示为主机,而不是虚拟机,即使成功连接也是如此。 在虚拟机的TIME_WAIT中不能确定这个意义,但连接保持不变,而且本地地址:端口与MySQL所具有的不同,也是成功的连接。

Loopback +连接多个数据库

我正在使用loopback框架和nodejs。 是否可以一次连接多个数据库? 比如我有两个不同的数据库。 1. Mysql Database – A 2. Postgresql – B 有些页面从A数据库获取数据,有些页面需要从B数据库获取数据。 有可能这样做吗? 更多细节: 假设我们有两个模块。一个模块与MySQL交互,另一个模块与postgreSQL交互。

为什么Node.js中的MySQL如此之慢?

我的Node.js代码如下所示 CODE1:下面 var http=require('http'); var MySQL = require('mysql'); mysql = MySQL.createConnection(…) http.createServer(function(req, res){ // the query will take several seconds mysql.query("SELECT SLEEP(1)", function….) }); http.listen(…); 问题是当我刷新页面过快时服务器会崩溃。 我认为是node-mysql模块的问题,它处理队列中的查询。所以我尝试创build一个连接池。 CODE2:下面 …. var pool = require('generic-pool'); var mp = pool.Pool({ … create: function(cb){ client = MySQL.createConnection(…); cb(null, client) }, max: 10, // up to 10 connection min: 2, […]

查询连接表,但不会在Sequelize中获取两个关联

考虑以下模型: var User = sequelize.define('User', { _id:{ type: Datatypes.INTEGER, allowNull: false, primaryKey: true, autoIncrement: true }, name: Datatypes.STRING, email:{ type: Datatypes.STRING, unique: { msg: 'Email Taken' }, validate: { isEmail: true } } }); var Location= sequelize.define('Location', { _id:{ type: Datatypes.INTEGER, allowNull: false, primaryKey: true, autoIncrement: true }, name: Datatypes.STRING, address: type: Datatypes.STRING }); Location.belongsToMany(User, […]

node-mysql – 何时释放连接回池

我正在使用连接池的node-mysql驱动程序。 只有一个查询时,将连接释放回池中很容易: pool.getConnection(function(err, connection) { if (err) { throw err; } query = "SELECT * FROM user WHERE id = ?"; connection.query(query, [id], function(err, users) { connection.release(); if (err) { throw err; } // … }); }); 如果我需要再次使用连接,该怎么办? 我不得不将release()移动几行。 但是,如果错误被抛出,会发生什么? 连接是否永远不会返回到池中? 我是否必须使用一些控制stream程lib才能释放它? 任何更好的想法?

带有mysql的NodeJS服务器挂起

我写了一个使用NodeJS,Express,mysql的应用程序,到目前为止一切正常,但是当我的应用程序运行一段时间后,当mysql连接中断,我的应用程序通过这个exception,我的应用程序closures。 Error: read ECONNRESET at errnoException (net.js:901:11) at TCP.onread (net.js:556:19) 从另一个stackquestion我知道,我必须处理这样的未捕获的例外。 process.on('uncaughtException', function(err) { console.log('Caught exception: ' + err); console.log(err.stack); }); 在此之后,我的应用程序不会退出,而是挂起,所以我的问题是如何处理这个exception,以便即使在这个exception和我的应用程序不挂断后,MySQL连接是好的。

使用PHP hash()和NodeJS crypto.createHash()比较SHA256,

我正在使用NodeJS为我的网站做一个实时应用程序,允许我的用户使用他们的账户login等等。 但是,我在logging部分问题。 当我在主站点上注册/login用户时,我使用PHP的hash()函数散列密码,如下所示: $passwordSalt = mcrypt_create_iv(100); $hashed = hash("sha256", $password.$passwordSalt.$serverSalt); 而且在我的网站上效果很好 但是我需要能够从NodeJS的数据库中获取用户的salt,并且能够散列用户input的密码,并根据数据库的密码进行检查,并确保它们匹配以便将用户login。 我是这样做的: //Check if Username exists, then grab the password salt and password //Hash the inputted password with the salt in the database for that user //and the salt I used for $serverSalt in PHP when creating passwords //check if hashed result in NodeJS […]

Codeigniter在nodejs中读取会话cookie

我正在做一个codeigniter的应用程序,并为实时的东西实现nodejs。 我想检查用户是否使用nodejslogin。 通过下面的代码,我可以在nodejs服务器中获得codeigniter会话ID: var server = require('https').createServer(options, function(request, response){ var cookies=(function(str){ var result={}; str.split(/;\s+/).forEach(function(e){ var parts=e.split(/=/,2); result[parts[0]]=parts[1]||''; }); return result; })(request.headers.cookie), sessionCookieName='ci_session', sessionId=cookies[sessionCookieName]||''; console.log(sessionId); }).listen(8080); codeigniter会话存储在数据库中,encryption设置为true。 而sess_match_ip = TRUE,sess_match_useragent = TRUE; 现在我的问题是,什么是检查用户是否login的好方法? 我已经安装了node-mysql客户端。 我知道CI做的是这样的: SELECT * FROM (`ci_sessions`) WHERE `session_id` = 'blabla' AND `ip_address` = '127.0.0.1' AND `user_agent` = 'Mozilla/5.0 (Macintosh; Intel Mac OS X […]

自动保存服务器架构

我想在服务器上保存一个冗长的表单input。 但是我不认为每个自动保存动作的db调用是最好的方法。 什么构成了解决这个问题的好方法? 另一个问题是,我有3个应用服务器。 所以在内存caching将无法正常工作。 我想保持在redis中的数据,并在每次调用更新它,最后更新数据库。 但是,因为我有3台服务器,我怎样才能确保呼叫在队列中? 任何人都可以帮助build筑?

nodeJS从callback中返回值

我正在构build一个应用程序,在特定的调用中,我必须阻止并等待来自validation查询的结果,然后再继续。 function authenticate(userid, hash) { mysql_client.query("SELECT `hash` FROM `auth` WHERE `userid` = " + userid, function selectCb(err, results, fields) { if (err) { client.send("Error communicating with mysql, please retry your request"); return false; } if(results.length == 0 || results[0].hash != hash) { client.send("Error comparing authentication data with database, please retry request"); return false; } return […]