Tag: mysql

承诺不能正常工作

我试图用MySql做一个嵌套的查询,把结果放在一个variables里,并通过http发送,但程序总是运行console.log("test 2:"+rpsData); 在查询完成之前。 我已经尝试过,但仍然遇到同样的问题。 const express = require('express') const app = express() const mysql = require('mysql'); const Connection = require('mysql/lib/Connection'); const Promise = require('bluebird'); Promise.promisifyAll([ Connection ]); const connection = mysql.createConnection({ host : 'localhost', user : 'root', password : 'root123', database : 'mygallery' }); app.get('/posts', function(request, response) { var rpsData; connection.connectAsync() .then(function() { connection.query('SELECT * […]

Nodejs – 带有循环的node-mysql事务

我的nodejs项目目前使用node-mysql 。 我有一个多级数据数组,我想要插入到多个表中。 交易是我想到的,以实现我的目标。 以下是我的代码的大纲: const mysql = require("mysql") const pool = mysql.createPool({ // connectionLimit=10 by default connectionLimit: 5, // 10 by default host: 'somehost', user: 'userblah', password: 'passworblah', database: 'dbblah' }) pool.getConnection(function(err, dbConnection) { dbConnection.beginTransaction(function(err1) { if (err1) { console.log(“Unable to begin the transaction”) return } arrayElements.forEach(function(element) { var insert1 = mysql.format(“INSERT INTO table1(…) […]

节点mysql插入到许多表中

我使用nodejsparsing一个csv文件,并将其保存在MySQL中的信息。 我试图插入数据到多对多的表,但希望ID插入到数据库中用于anohter查询? con.query("INSERT INTO TransactionDescription SET ? ON DUPLICATE KEY UPDATE Description= VALUES(Description)", trandesc, function(err, res) { if (err) throw err; }); 我可以返回生成的ID,所以我可以在这个查询中使用它们吗? con.query("INSERT INTO Transaction SET ? ", tran, function(err, res) { if (err) throw err; });

如何知道MySql的条件INSERT是否工作?

使用条件插入,我想知道是否插入一行或者是否发现重叠。 我有一个查询插入一个请求到数据库,如果它不与任何现有的条目重叠。 查询工作,但我怎么知道是否有碰撞? 查询只是成功执行。 这是我的查询: INSERT INTO requests(id, start_time, end_time) SELECT NULL, 1463631640671,1463636731000, FROM Dual WHERE NOT EXISTS ( SELECT * FROM requests WHERE start_time < 1463638531000 AND end_time > 1463636731000 ) 供你参考。 我正在使用mysql包在Node.js中进行此操作。 代码看起来像这样,每次都返回“SUCCESS”。 var queryString = "INSERT INTO requests(id, start_time, end_time…" connection.query(queryString, function(error, results, fields) { if (!error) { console.log('SUCCESS!'); } else { […]

仅在主表上聚合GROUP BY,而不是在连接中完整连接的表

我有五个表USER_ATTRIB , QUESTION_MAIN , REPLY_MAIN , CATEGORY_MAIN , QSTN_CATG相关如下: m.QUESTION_MAIN.belongsTo(m.USER_ATTRIB, { foreignKey: 'POSTER_I', targetKey: 'USER_I'}); m.QUESTION_MAIN.hasMany(m.REPLY_MAIN, { foreignKey: 'QSTN_I' }); m.QUESTION_MAIN.belongsToMany(m.CATEGORY_MAIN, { through: m.QSTN_CATG, foreignKey: 'QSTN_I' }); m.QUESTION_MAIN.hasMany(m.QSTN_CATG, { foreignKey: 'QSTN_I' }); 我想在QUESTION_MAIN上运行查询来获取有关问题的详细信息。 其中一个细节是对问题的答复数量,可以通过查询 SELECT COUNT(REPLY_MAINs.QSTN_I) GROUP BY QSTN_I; 我想要运行的组合查询是: SELECT `QUESTION_MAIN`.* ,`USER_ATTRIB`.`USERATTRIB_ID` AS `USER_ATTRIB.USERATTRIB_ID` ,`USER_ATTRIB`.`USER_NAME` AS `USER_ATTRIB.USER_NAME` ,`QSTN_CATGs`.`QSTN_CATG_ID` AS `QSTN_CATGs.QSTN_CATG_ID`, ,`QSTN_CATGs`.`CATG_I` AS `QSTN_CATGs.QSTN_CATG_I` ,`REPLY_MAINs`.`REPLY_ID` […]

Bookshelf.js – 更新logging后,初始页面加载/查询显示旧logging。 刷新数据正确显示后

当我使用书架将列设置为空,并redirect到显示该数据的页面时,数据将显示未更新的logging,直到我刷新。 代码如下: Table.where({id: req.param.id}).fetch() .catch(function (err) { console.log(err); }) .then(function (results) { results.set('other_column', null); results.save(); results.refresh(); // Redirect to orders page res.redirect('/landing-page'); }); 着陆页查询是这样的: Table.where({id: req.param.id}).fetch() .catch(function (err) { console.log(err); }) .then(function (results) { data.results = results.attributes; res.render('display-page', data); }); 有谁知道我如何获取更新的logging,或让我知道如果我更新logging不正确? 任何帮助解决这个问题将不胜感激,因为我不能用旧的数据渲染页面后,用户刚刚更新…

使用Node和Mysql

我正在处理angular应用程序和PHP作为后端,将数据处理到MySQL。 最近我发现Nodejs的node-mysql插件将通过JS与MySQL通信。 文件提供后,我有一个问题,我想问在这里,需要你们所有的启发。 根据文档,我们将不得不在JS文件中声明连接为 var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'me', password : 'secret', database : 'my_db' }); connection.connect(); connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) { if (err) throw err; console.log('The solution is: ', rows[0].solution); }); connection.end(); 通过在JS中提供所有敏感的数据库login数据,是否会成为安全问题的一大漏洞? 如果是的话,如何防止呢? 查询也将通过JS文件完成 var mysql = require('mysql'); var […]

在使用MySQL的PassportJs中的多个序列化用户

正在开发使用Nodejs与MySQL的应用程序 对于使用passportJS的login身份validation。 在这个应用程序有两个loginpipe理员和另一个客户。 所以分开的表是有用户和注册。 passport.serializeUser(function(user, done) { done(null, { id : user.id, isAdmin : user.isAdmin // or some other property/check }); }); // used to deserialize the user passport.deserializeUser(function(user, done) { var table = user.isAdmin ? 'register' : 'users'; connection.query('select * from ?? where id = ?', [ table, user.id ], function(err, rows) { if […]

Node.js mysql在html网站上显示表格

我是新来的node.js,并尝试在HTML网站上显示一个简单的表。 这个表应该填充来自mysqlselect的数据(例如:select * from testtable)。 但是我真的不知道该怎么做。 对于有PHP背景的人,我如何在nodejs的HTML中显示一些sql内容? 我知道git mysql nodejs wiki,但它根本没有帮助,因为这只是获取数据并不显示在网页上。 在nodeJS中做这种事情的最佳做法是什么? 有一个容易理解的方式,还是应该留在PHP? 我真的很喜欢关于node.js的想法,但是开始就像攀登一个滑的悬崖。 我也买了一本关于它的书,但这本书从来没有深入到expression(因为这将是太多的信息.​​.)。 所以我知道快递,帕格,服务静态,我能够服务一个简单的HTML。 但就是这样,没有CRUD或REST,我没有付出50欧元。 编辑:我需要使用一个API或可能使用Angular.js正确的方式吗? EDIT2: C:\Users\user\node_test\CRUD2>node app.js module.js:327 throw err; ^ Error: Cannot find module './routes' at Function.Module._resolveFilename (module.js:325:15) at Function.Module._load (module.js:276:25) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Object.<anonymous> (C:\Users\user\node_test\CRUD2\app.js:2:14) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at […]

节点/蓝鸟/ MySQL交易

在过去的一周里,我一直在为蓝鸟承诺库和MySQL而苦苦挣扎。 我经常发现,假设我完全沉浸在他们的术语中,并且往往只给出一半的答案,或者根本没有答案。 让我挂着试图找出如何使用它。 目前我正试图执行一系列的SQL命令来创build一个事务内的数据库logging。 我正在使用这个代码: var Promise = require('bluebird'); var mysql = require('mysql'); Promise.promisifyAll(mysql); Promise.promisifyAll(require('mysql/lib/Connection').prototype); Promise.promisifyAll(require('mysql/lib/Pool').prototype); function getConnection() { return pool.getConnectionAsync().disposer(function (connection) { connection.release(); }); } function getTransaction(connection) { return connection.beginTransactionAsync().disposer(function (tx, promise) { if (promise.isFulfilled()) { tx.commitAsync(); } else { tx.rollbackAsync(); } }); } Database.prototype.addStory = function (projectId, title, text) { return Promise.using(getConnection(), function […]