Tag: mysql

如何在nodejs中编写数据库模块

在我的项目中,我正在使用MySQL数据库。 问题是,我不知道如何写简单的数据库模块到一个js文件。 我的代码是: 文件:database.js var mysql = require("mysql"); var connection = mysql.createConnection({ host: "localhost", user: "root", password: "", database: "mydb" }); module.exports = class Database { constructor() { connection.connect(function (err) { if (err) { console.error(err); throw err; } else { console.log("Connection to database was successful"); } }); } getConnection() { return connection; } }; 我在项目中有很多文件,每一个都需要使用数据库,问题是,当我每次调用database.js构造函数的时候,我认为它是一个坏的方法。 […]

在MySQL查询中创build一个for循环

我的查询是: connection.query("SELECT * FROM posts WHERE someId = 2", (err, rows) => { allIds = []; for(var i = 1; i <= rows.length; i++){ allIds.push(rows.id_post) } res.send("The IDs : " + allIds ) }); rows.length = 5 ,我得到的回应: The IDs : , , , , , rows.length = 5 。 没有数据。 我需要列出所有的ID。 后来想要运行这些Ids的另一个查询,也许在同一个查询,但现在为什么不显示ID? 我错过了什么?

JSON结果显示SUM MySQL的命令

我得到一个有效的返回计算所有值列我的MYSQL表,但是当我去检查我的api结果; 列值sum命令出现在JSON的结果中。 [ { "SUM(producFinalPrice)": 6000 } ] 这个我的路由器从我的数据库中获取数据。 router.get('/sell/home-card-last-sell-compared-to-the-previous-day', function (req, res) { connection.query('SELECT SUM(producFinalPrice) FROM new_sell', function (err, lastSellComparedToThePreviousDayCardHome, fields) { if (err) { throw err; } res.send(lastSellComparedToThePreviousDayCardHome); } ); }); ` 让我的错误更清晰,我从AJAX中的前一个查询做出最后的请求; 通过这种方式。 $(function () { $.ajax({ type: "GET", url: "/sell/home-card-last-sell-compared-to-the-previous-day", success: function (lastSellComparedToThePreviousDayCardHome) { var $lastSellComparedPreviousDay = $('#last-sell-compared-to-the-previous-day'); $.each(lastSellComparedToThePreviousDayCardHome, function (i, […]

Node.js mysql包中的转义函数是否足够安全地查询mysql数据库(不使用预处理语句)?

根据Node.js的mysql 包文档 : 为了避免SQL注入攻击,在SQL查询中使用数据之前,应该始终转义任何用户提供的数据。 你可以使用mysql.escape(),connection.escape()或pool.escape()方法。 我找不到任何使用mysql准备语句的文档/参考,除了在引用中使用'?' 字符。 它声明如下: 或者,你可以使用? 字符作为您想要转义的值的占位符… 这看起来与MySQL中的预处理语句类似, 但是它实际上在内部使用相同的connection.escape()方法。 从我与其他开发人员谈话的经验来看,开发人员社区中的普遍共识是准备好的语句是从Node.js执行mysql查询的唯一安全方式,但是,您可以使用mysql包来看到,没有明显的支持准备好陈述。 但是,表明他们避免SQL注入的方法是通过使用转义函数。 我的问题: mysql包中的转义函数是否足够安全地查询mysql数据库(不使用预准备语句)?

nodejs-无法将结果返回给控制器function

从我的模型中,我从用户的MySQL数据库中获取一些文章。 模型 var mysql = require('mysql'); var db = mysql.createPool({ host: 'localhost', user: 'sampleUser', password: '', database: 'sampleDB' }); fetchArticles: function (user, callback) { var params = [user.userId]; var query = `SELECT * FROM articles WHERE userId = ? LOCK IN SHARE MODE`; db.getConnection(function (err, connection) { if (err) { throw err; } connection.beginTransaction(function (err) […]

Sequelize包含扩展外键的相关模型

假设我有一个外键的数据库结构: User ,fk: – > Photo ,fk – > Color 在Sequelize中,我想select所有用户,并获取他们的所有照片,以及每张照片的颜色。 例如:通过说: models.User.findAll({ include: [{model: models.Photo, as: 'mainPhoto'}] }) 但是我怎样才能得到每张照片的颜色呢?

根据现有数据更新Alasql数据库的详细信息

我有一个Alasql数据库,看起来像这样: results Name Recieved Bill 10/11/17 7:42 AM Susan 10/05/17 3:43 AM Sarah 10/04/17 2:08 PM 我试图更新它来转换Recieved表并将其转换为一个Unix时间戳。 这是我试过的: alasql(`UPDATE result SET Recieved = ${new Date(Recieved).getTime()}`); 我在节点中得到这个错误: ReferenceError: Recieved is not defined 如何使用数据库中现有的已收集数据并在其上执行突变?

无法parsing从MySQL返回的JSON

我有一个将数据写入MySQL后端的Node.js应用程序。 一个字段是一个数组我stringify。 我可以在工作台中看到数据库中的数据是正确的。 但是,当我检索它时,我得到一个错误,当我试图parsing它。 “位置1的JSON中的意外标记” 如果我logging的结果显示为[Object Object] 。 从我在网上阅读,这意味着它已经是一个JS对象,我不需要parsing它。 但是我找不到有关如何访问数据的任何信息。 process: function (bot, msg, suffix) { var ftcmds = suffix.split(" ", 1); var ftName = ftcmds[0]; var ftArray; var selectSQL = "SELECT FireTeam FROM fireteam WHERE Name = '" + ftName + "'"; var updateSQL = "UPDATE fireteam SET FireTeam = '" + ftArray + […]

在创build或更新数据时,使用100%CPU对Sequelize / mysql进行encryption

我需要更新或创build一个大型数组(1000几个对象)的MySQL表中的数据与sequ​​elize。 当我运行以下代码时,它几乎耗尽了我的数据库服务器(vserver 2gb ram / 2cpu)的所有cpufunction,并堵塞了我的应用程序几分钟,直到完成。 有没有更好的方法来做到这一点sequelize? 这可以在后台完成,或作为批量操作,所以它不会影响我的应用程序性能? data.forEach(function(item) { var query = { 'itemId': item.id, 'networkId': item.networkId }; db.model.findOne({ where: query }).then(function(storedItem) { try { if(!!storedItem) { storedItem.update(item); } else { db.model.create(item); } } catch(e) { console.log(e); } }); });

优化nodejs mysql插入

我一直在为mongodb到mysql转换工作的ETL工具,这是在github这里主持mongodb到mysql的转换 。 目前在mongodb文档转换之后,插入查询被发送执行,但是插入速度最大为每秒600次插入。 在nodejs的mysql中插入query / sec是否有限制? 如果是的话再怎么增加呢? 否则有没有这个限制的框架? 整个转换的代码是在主转换代码 。 创build用于插入查询的数组是有限制的,因为所有文档都可以包含不同的键,这将在查询列名中产生差异。