Tag: sql

在节点js mysql查询中删除斜杠

这是我的代码。 pool.getConnection(function (err, connection) { connection.query("delete from userFiles where type = 1 and typeId = " + taskId + " and fileName NOT IN ('?') ",[oldFileNames], function (err, rows) { }); }); 现在问题是,节点js正在这样生成查询, delete from table_name where type = 1 and typeId = 1 and fileName NOT IN (\'\'upload_149f2b78e5fd4096781bb5b8719b874f.png,upload_e8185e896cb0f8bb0b66d807cc60922c.png\'\') 我甚至尝试过这样 connection.query("delete from userFiles where type […]

有条件的filter使用Knex.js和SQL以及多个search条件

我有我的用户需要能够search的项目数据库。 他们可以应用不同的filter,如category , searchTerm , itemType 。 我知道如何在knex查询中应用这些filter,但不知道如何有条件地合并它们。 例如,在一种情况下,用户只inputsearchTerm。 所以我不想按类别或项目types进行筛选,而只需要searchTerm。 但是,我想只有一个knex函数有条件地为查询添加额外的子句。 就像是: const getFilteredItems = (searchCriteria) => knex('items') // IF (searchCriteria.searchTerm) .where('items.itemName', 'like', `%${searchCriteria.searchTerm}%`) // IF (searchCriteria.itemType) .where('items.itemType', '=', searchCriteria.itemType) // IF (searchCriteria.category) .where('items.category', '=', searchCriteria.category) 但我不知道如何有条件地将附加的where子句追加到knex查询中。 有没有一个优雅的方式来做到这一点,而不写入原始的SQL?

Sqlite如何转义值以防止SQL注入

有谁可以告诉我如何转义input值,以防止SQL注入? 我有一个用户身份validation应用程序,我需要以某种方式导入一些安全性。 我的validation看起来像这样: //Validation req.checkBody('name', 'Name is required').notEmpty(); req.checkBody('email', 'Email is required').notEmpty(); req.checkBody('email', 'Email is not valid').isEmail(); req.checkBody('password', 'Password is required').notEmpty(); req.checkBody('password', 'Password must have at least 6 characters').len(6,20); req.checkBody('password2', 'Passwords do not match').equals(req.body.password); 然后我INSERT一些值如下: var stmt = db.prepare("INSERT INTO users ( id, name, email, password, salt) VALUES (NULL, ?, ?, ?, ?)"); stmt.run([ name, […]

从Node.JS连接到Google Cloud SQL的正确方法

我遵循了关于如何设置Node.JS来使用Cloud SQL的示例,并且通常可以使用它,但是有关如何连接到SQL Server的一些解决方法。 我无法以正确的方式将INSTANCE_CONNECTION_NAME传递给createConnection()方法的optionsvariables的socketPath选项。 相反,作为临时的解决方法,我目前指定服务器的IP地址,并将我的虚拟机IP地址放入服务器的防火墙设置中,以便让其通过。 这一切工作,但我现在试图把它发布到AppEngine之前正确地放在一起。 我怎样才能使它工作? 下面的代码工作正常: function getConnection () { const options = { host: "111.11.11.11", //IP address of my Cloud SQL Server user: 'root', password: 'somePassword', database: 'DatabaseName' }; return mysql.createConnection(options); } 但是下面的代码,我从教程和教程中提到的Github页面合并,给出了错误: function getConnection () { const options = { user: 'root', password: 'somePassword', database: 'DatabaseName', socketPath: '/cloudsql/project-name-123456:europe-west1:sql-instance-name' }; return mysql.createConnection(options); […]

使用可选参数运行SQL查询的最佳方式是什么?

我目前正在运行以下查询将数据添加到我的数据库中的表: INSERT INTO IDEIAS_INTERACOES (CODIGO, ARQUIVO, REMETENTE, MENSAGEM, UNIT, DATA) VALUES (@codigo, @file, @remetente, @mensagem, @unit, @data) 这工作正常,但@file参数并不总是存在的,我希望列在这种情况下是'Undefined' 。 我可以使用三元运算符轻松完成这个任务,但是由此产生的代码很混乱,可能不是最理想的。 什么是更完美的方式来完成这个? Ps .:我正在使用mssql模块。

获得刚刚添加的行的最佳方法。 Heroku + Node + Postgres

获得刚刚添加的行的最佳方法是什么?我正在使用Heroku,Node和Postgres以及Expressjs。 我希望能够做到这样的事情。 app.post( '/', function( req, res ){ client.query("INSERT into ..", function( err, result ){ res.send( result.id ); }); }); 理想情况下,callback将包含刚刚input的行的信息,但其内容只是一个对象 { rows:[] } 有没有一个很好的方法来获得我刚添加的那一行,谢谢。

如何用MongoDB构buildrecursion结构

我试图做一些通常简单的SQL(例如,在同一个表中的外键)(这可能是与MongoDB一样简单,我只是不知道),这是build立一个recursion数据结构。 在这个例子中,我将讨论网站中的页面。 我想做一个多层次的页面结构。 所以可能有: 家 我们的产品 产品1 产品2 关于我们 我们在哪? 联系我们 比方说,网页将有一个标题和一个内容。 我需要知道什么是最好的方法来做到这一点,也是我可以build立一个基于该数据结构(显示每个级别的每个页面的页面)的网站地图。 我正在为MongoDB构build一个node.js应用程序。 编辑:它不会通过简单地引用每页中的父页面工作? 页面会像{ title: 'test', content: 'hello world', parentPage: ObjectID(parent page) } 谢谢您的帮助!

NodeJS JSON数组过滤

我已经使用Node从SQL中检索一组结果,它们就像这样返回; [ { "event_id": 111111, "date_time": "2012-11-16T01:59:07.000Z", "agent_addr": "127.0.0.1", "priority": 6, "message": "aaaaaaaaa", "up_time": 9015040, "hostname": "bbbbbbb", "context": "ccccccc" }, { "event_id": 111112, "date_time": "2012-11-16T01:59:07.000Z", "agent_addr": "127.0.0.1", "priority": 6, "message": "aaaaaaaaa", "up_time": 9015040, "hostname": "bbbbbbb", "context": "ddddddd" }, ] 数组中通常有很多条目,我需要有效地过滤数组,以便仅显示具有“ccccccc”上下文的条目。 我已经尝试了一个for循环,但它非常慢。 任何build议?

将SQL查询结果作为node.js中的variables返回

我试图抓住一个SQL查询的结果,以便在我的代码中的其他地方使用它,但我无法弄清楚如何让他们出去。 我有嵌套函数,所以我试图通过两个返callback用,但是出来是无效的。 var users = getUsers(); function getUsers(req, res){ dbConnect(req,res); return connection.query('SELECT * FROM USERS', function selectAll(err, rows, fields) { if (err) { throw err; } for (var i in rows) { console.log(rows[i]); } return rows; dbClose(req,res); }) } 这里有什么问题?

唯一不能在Node.js Sails.js“sails-mysql”

我刚开始进入Sails for Node的框架。 但是,似乎我无法得到独特的要求,当添加例如用户到sails-mysql数据库的工作。 我可以使用相同的用户名和电子邮件添加无限数量的新用户。 从我读过的应该可以起作用,我也尝试过使用sails-memory,而且这个确切的代码确实起作用了。 这是我错过了什么吗? module.exports = { attributes: { username: { type: 'string', required: true, unique: true }, firstname: { type: 'string', required: true }, lastname: { type: 'string', required: true }, password: { type: 'string', required: true }, birthdate: { type: 'date', required: true }, email: { type: 'email', required: true, […]