Articles of mysql

混淆续集关联一对​​多和一对一单向

我有以下实体: 用户(姓名,电子邮件,密码) 目标(标题,说明) 照片(文件名,path,内容types) GoalPhoto(fk_goal,fk_photo) 用户有很多目标 – 它工作正常。 外键添加到目标表 用户有一张照片 – 不起作用。 目标有许多照片在连接表模型GoalPhoto – 不起作用。 照片与用户和目标没有任何关联,但用户和目标实体分别具有一对一和一对多的关系。 照片不属于任何型号。 当我把User.hasOne(照片)它创build照片表中的外键,但我只想在用户(fk_photo)一个外键。 当我把Goal.hasMany(照片,{as:'photos',joinTableModel:GoalPhoto,foreignKey:'fk_goal'})它创build照片表中的外键,但我想要目标和照片外键JoinTable。 我该如何解决?

我是否破坏了使用NodeJS / socket.io与我的AJAX脚本的好处?

我正在创build一个具有聊天function的应用程序,并且我决定使用NodeJS / socket.io。 我的项目也使用PHP,我想从我的应用程序中的数据存储在MySQL服务器。 这是目前发生的事情 socket.on(客户端连接) – > AJAX脚本,将新客户端的用户名添加到MySQL数据库(我想保留连接到MySQL聊天的用户列表) 任何人发送消息 – > AJAX脚本将该消息的时间戳版本放入MySQL数据库(聊天日志) socket.off – > AJAX脚本从MySQL数据库中删除客户端 我使用这么多的AJAX,我毁了使用socket.io的好处? 据我的理解:我仍然得到了与socket.io的实时连接的好处,我的AJAX导致我的PHP服务器上的单独负载,但这些AJAX操作不应该中断或阻止节点。 但是,这将单独加载在PHP服务器减慢客户端socket.io连接? 我是Node / socket.io的新手,所以我可能会丢失一些关于后端操作的基本知识。

如何使用node.js上的mysql2包使用预备的查询

文档中给出的示例如下所示: var mysql = require('mysql2'); var connection = mysql.createConnection({ user: 'test', database: 'test'}); connection.execute('SELECT 1+? as test1', [10], function(err, rows) { // }); 这里的想法是“?” 在查询中被replace为“10”的值。 此示例显示如何使用重置值为“10”的查询一次。 我如何多次使用准备好的查询和不同的replace值? 这里的希望是编译好的查询已经被编译,所以对这个查询的多次调用不会导致每次运行时编译查询的性能。 谢谢 – 加里

Node.js整理数据库规范化

我正在尝试将PHP网站迁移到Node.js,现在我正在考虑使用Sequelize设置数据库。 大多数表格都设置好了,但是我很难弄清楚如何进行标准化。 例如我有1个数据库用户: ID Username Email Password 另一个名为Domains的表格: ID Domain RegisteredAt 现在我需要创build一个第三个表来链接到这两个表一起查找,如下所示: UserID DomainID 我试图从Sequelize文档设置OneToOne关联,但是这只是似乎在原来的两个表中创build一个额外的字段。 有人可以解释我该怎么做吗? 谢谢你的帮助

nodejs(expressjs)如何将来自2个查询的信息转换成jade?

我有一个用户和他们的信息表和一个不同的表来跟踪朋友: 在MySQL中设置好友列表 我正在尝试使用jade,profile.jade来做这样的事情: – each user in users h1='Welcome to '+user.username+' profile!' – each friend in friends p=row.friend2 performance function select(id, res) { connection.query(' SELECT * FROM profiles WHERE username = "'+id+'" ' , function(err, rows){ res.render('profile', {users : rows}); }); connection.query(' SELECT * FROM friends WHERE friend1 = "'+id+'" ' , function(err, rows){ res.render('profile', […]

如何制作一个独特且难以猜测和预测的标记?

一旦我的用户通过第三方(Facebook或Twitter)进行身份validation,我需要生成一个令牌。 我将这个令牌返回给客户端,他们将能够使用它访问所有的用户信息。 我需要令牌难以猜测,难以预测。 (硬意味着用现代桌面猜测需要一两天的时间) MySQL具有UUID()函数,该函数生成一个唯一的值,但是文档也说明了它不可猜测或不可预测。 我不确定这是否意味着不难猜测或预测。

Node.js的mysql响应格式

我正在开发一个连接到MYSQL数据库的node.js应用程序,获取一些信息,将其转换成JSON格式并将其写入浏览器。 我使用mysql npm( https://www.npmjs.org/package/mysql )。 connection.query("select tact, digits, mode from table1 where id = '"+id+"'", function(err, rows, fields){ if (err){ console.log(err); throw err; } var objToJson = rows; objToJson.response = response; var finalresponse = JSON.stringify(objToJson); }); 最后的回应是: [{"tact":0,"digits":5,"mode":"on"}] 关键是我只想接收类似的东西(但它应该是jsonparsing): [{0,5,"on"}] 我怎么能这样做? 可能吗? 多谢你们。

我应该何时打开/closures与数据库的连接? (MariaDB / node.js)

我正在使用https://github.com/mscdex/node-mariasql 我在DB上运行查询的过程中有这些阶段: var Client = require('mariasql'); var client = new Client(); client.connect(…); client.query(…); client.end(); 我应该什么时候运行这些? 每个查询运行整个事情(当然除外)? 保留客户端的一个实例并始终保持打开状态,只需对每个查询运行.query查询? 谢谢

Sequelize updateAttributes在socket.on('disconnet')中不起作用

我想更新客户端从套接字断开的时间。 然而,下面的代码给我“没有方法”indexOf'“行”查找({其中:{room_id:roomId}})“。 有人知道为什么吗? 谢谢! var roomId; roomId = socket.on('updateStartTime', function(roomId) { //some code return roomId }); socket.on('disconnect', function() { var date = new Date(); Room.find({ where: { room_id: roomId } }).complete(function(err, room) { if (err) console.log(err); room.updateAttributes({ end_time: date }).success(function(room) { console.log("end_time: " + room.end_time); }); }); socket.broadcast.emit('updateChat', 'SERVER', socket.username + ' has disconnected…'); }); […]

Node.js + Node-MySQL + Express 4 +胡子

我目前正在尝试使用Node.js,而且我被卡住了一点。 我正在尝试将查询传递给小胡子。 Index.js //Load Express Framework var express = require('express'); //Load Mustache Template Engine var mustachex = require('mustachex'); //Load MySQL var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'nodeuser', password : 'testpass', database : 'node', }); connection.connect(function(err) { }); //Call express var app = express(); //Set Global App Settings app.engine('html', […]