Articles of mysql

用Nodejs for MySQL编写Breezejs数据源提供程序

我想用NodeJS和MySQL来使用Breeze。 不幸的是,到目前为止我找不到这样的例子。 我看到有一个NodeJS + MongoDB的例子。 现在我试着分析一下MongoDB提供者(mongoSaveHandler.js – [npm install breeze-mongodb]?)来为MySQL编写我自己的提供者。 不幸的是我找不到有关如何build立这样的提供者的任何文件。 提供者应该能够处理复杂的数据和导航属性(一对多等),并在MySQL数据库中正确保存/删除/更新它们。 以下是数据库结构如何可能的示例: 数据库图像 我现在的问题是: Breeze(+ NodeJS)和MySQL可以使用吗? 是否有文档/示例如何编写自己的数据源提供程序? 如果我是独立的,当我创build我的提供者时,我应该寻找什么?

从Chrome扩展连接到Mysql

是否有可能连接到本地主机上的一些端口到MySQL并进行SQL查询? 它的目的是作为一个开发工具,所以用户authentication到自己的分贝。 我发现: https : //npmjs.org/package/mysql-native-pre plus http://blog.iceddev.com/2012-11-05-node-js-in-chrome.html 所以,看起来有一种方法可以在chrome ext中运行nodeJs。 并且有用于MySQL通信的NodeJS模块。 但是,这并不意味着,这个特定的模块将在Chrome沙箱中工作。 有没有人有这方面的经验? 我不知道NodeJS,甚至Chrome扩展,所以在我开始挖掘…谢谢。

在node.js中打印从数据库检索的数据作为响应

我是node.js的初学者,对不起,如果我错了。 而不是打印数据在console.log(),我想打印在本地主机:3000。 在这里,我从MYsql数据库中检索数据,当我完成console.log()时,一切正常。 但是当我用http请求和响应编写我的代码时,它出错了。 我的db.js是 var http = require("http"); var port = 3000; var serverUrl = "localhost"; var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : username, password: password, database: "wst" }); var server = http.createServer(function(req, res) { console.log("Request: " + req.url); connection.connect(); connection.query('select * from welcome',function(err, results, fields){ //console.log(results); //console.log(fields); […]

在mysql请求之后节点JSredirect

我正在尝试做一个与节点JS和MySQL的注册页面,所有工作,除了我不能在另一个页面上redirect用户。 它没有考虑到我的forms“行动”,我不能在我的server.js中使用window.location,当我尝试: response.writeHead(301, {Location: 'index.html'} ); 我得到了永久性的错误。 所以,这是我的forms: <form method="post" action="index.html" id="registerForm"> <label for="username">Username</label> <input type="text" name="username" placeholder="Username" id="username" /><br/> <label for="password">Password</label> <input type="password" name="password" placeholder="Password" id="password" /><br/> <label for="password_bis">Confirmation</label> <input type="password" name="password_bis" placeholder="Password" id="password_bis" /></span><br/> <label for="language">Language</label> <select name="language" id="language"> <option value="fr">Français</option> <option value="en">English</option> </select> <input type="submit" value="Submit" /> </form> 这是我的js检索的内容: $(document).ready(function(){ $("#registerForm").submit(function (e) […]

“Order by”子句在由Node.js运行的MySQL查询中不起作用

我有以下查询,这在PHP中正常工作: SELECT g.* , u.username FROM games g JOIN users u ON g.admin_id = u.id WHERE g.status < 4 ORDER BY g.status DESC , g.start_date DESC; 它返回行并按status desc正确命令它们,然后start_date desc 。 但是,当我尝试从Node.js运行相同的查询,它仍然返回所有的行,但不正确的顺序。 看来它是通过ID来命令它的,这意味着它忽略了上面order by子句的order by 。 为什么是这样的,我该如何解决? 这里是代码: connection.query(" SELECT g.* , u.username FROM games g JOIN users u ON g.admin_id = u.id WHERE g.status < […]

从testing中解耦查询的最佳实践

我正在寻找使用mocha或sinontestingmysql查询的最佳实践。 我试图testing非常基本的数据库查询,如保存: User.prototype.save = function(cb) { var query = 'INSERT INTO user (name, email, password, img, description)' + 'values (?, ?, ?, ?, ?)'; var params = [this.name, this.email, this.pass, this.img, this.description]; db.query(query, params, function(err, rows) { if (err) return cb(err); cb(rows.insertId); } ); }; 我相信我想做一个模拟数据库,并使用该对象,而不是我的数据库对象,但我也想分开testing逻辑从应用程序逻辑。 我尝试了一些变化 describe('User', function() { before(function() { mock = sinon.mock(require('../middleware/db')); […]

upstart node.js mysql连接

我是新来的node.js所以在试图学习它我试图运行这个例子http://markshust.com/2013/11/07/creating-nodejs-server-client-socket-io-mysql 它没有问题,一切工作正常。 但后来我想永远和新贵运行这个服务器,出现了一个奇怪的问题。 当我第一次重新启动系统时,upstart运行良好的服务器,但服务器脚本不列出mysql条目。 但是,当我杀了服务器,并永远启动它,一切正常。 你可以帮我吗? 这是我的新贵conf。 #!upstart description "Forever and Node.js" start on (starting mysql) stop on shutdown expect fork env NODE_BIN_DIR="***" env NODE_PATH="***" env APPLICATION_DIRECTORY="***" env APPLICATION_START="***" env LOG="***" script PATH=$NODE_BIN_DIR:$PATH exec forever –sourceDir $APPLICATION_DIRECTORY -a -l $LOG –minUptime 5000 — spinSleepTime 2000 start $APPLICATION_START end script pre-stop script PATH=$NODE_BIN_DIR:$PATH exec forever stop […]

我可以在JugglingDB中拥有多个模式对象吗?

我有一个简单的应用程序连接到两个数据源。 一个是mongo,其中我使用mongoose作为我的ORM,主要是因为它有一些很棒的function供我使用。 另一个是我正在使用mysql的适配器jugglingdb的MySQL。 由于我是jugglingdb的新手,我有几个有关其组织的问题。 你可以有你的模式对象在多个文件? Mongoose允许您在不同的文件中创build模式对象,并允许您使用mongoose.model("mymodel")引用它们,但mongoose.model("mymodel")的有限文档将其所有模式定义在一个文件中。 我想知道如何引用你已经定义的模式对象。 到目前为止,我的努力一直是从主模式对象中移除连接信息,并将其放入另一个文件中。 var Schema = require('jugglingdb').Schema; var TestSchema = function () { var schema = new Schema('mysql', { database: 'MyDB', username: 'blah', host: 'localhost', password: 'blah', port: '3306' }); return schema; }; module.exports = TestSchema; 然后,我会添加每个模式对象在他们自己的文件,并要求上面的代码是这样的: var Test = require('../../db/jugglin_conn') , schema = new Test(); var Email = schema.define('email', […]

使用nodejsselect数百万行

我有许多生产服务器(30+)运行相同的应用程序。 要求对所有这些数据库中某个表的组合值进行一些处理。 所以,我创build了一个包含所需列的表格,我将执行以下操作: 连接到destination_server:database_name 连接到server_1:database_name,SELECT col1,col2,col3 FROM the_table //select所有表 处理每一行并将其插入到目标服务器中 笔记: 处理几乎是微不足道的,而且我运行这个节点脚本的机器上有很多CPU / RAM。 每个表格包含1000万行+ 我打算使用stream式查询行 。 步骤2(连接到源服务器)将针对所有服务器并行完成 问题: 所有的大桌面都会select生产服务器上的性能吗? 节点适合这样的任务吗?

使用“限制”和“包含”选项时,Sequelize中的“未知列”错误

我有一个相对复杂的Sequelize查询,导致“错误:ER_BAD_FIELD_ERROR:”where子句“中的未知列”EventImage.EventId“。 我可以清楚地看到在生成的SQL中的问题,但我不知道如何解决它。 错误是准确的,因为在子查询中生成的WHERE子句引用了不包含在子查询中的列。 据我所知,Sequelize正在生成子查询作为实现行限制的一种方式。 我使用sequelize@2.0.0-dev11,MySQL 5.5.35-0ubuntu0.13.10.2和Node v0.10.21。 这是基本的代码: var orm = require('../model'); var i = orm.Image; i.findAll({ where: where, offset: offset, limit: rows, order: orderby, include: [{ model: orm.User, as: 'User' }, { model: orm.Event, as: 'Events' }, { model: orm.Comment, as: 'Comments' }, { model: orm.Favorite, as: 'Favorites' } ] }) (1,2)“中的”EventId“和”EventImage“ 偏移量= 0 […]