【发布时间】:2013-08-12 17:51:23
【问题描述】:
我知道像node-mysql 这样的模块在从应用程序连接到数据库时很受欢迎,但是如果不使用这样的模块,我找不到任何有关连接过程的信息。
显然我可以在模块本身周围寻找答案,但是真的没有用户案例可以通过简单查询进行简单连接而没有模块依赖和臃肿的功能吗?
考虑到像 MySQL 这样的进程的非常简单的 I/O,我觉得这很奇怪。
【问题讨论】:
我知道像node-mysql 这样的模块在从应用程序连接到数据库时很受欢迎,但是如果不使用这样的模块,我找不到任何有关连接过程的信息。
显然我可以在模块本身周围寻找答案,但是真的没有用户案例可以通过简单查询进行简单连接而没有模块依赖和臃肿的功能吗?
考虑到像 MySQL 这样的进程的非常简单的 I/O,我觉得这很奇怪。
【问题讨论】:
这与 node.js 关系不大,更多的是与知道如何实现 MySql client/server protocol 有关。您只需要创建一个tcp connection 到服务器并根据协议发送正确的格式和数据序列。 node-mysql 完成了困难的部分:将协议抽象为更易于使用的东西。
【讨论】:
这是主观的,但请看https://github.com/felixge/node-mysql中的示例
对我来说看起来像简单的连接和简单的查询
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'me',
password : 'secret',
});
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();
如果你看一下源代码你会看到实现mysql客户端协议需要什么,我想说这并不简单
https://github.com/felixge/node-mysql/blob/master/lib/Connection.js
https://github.com/felixge/node-mysql/tree/master/lib/protocol
但这又是主观的,恕我直言,我认为没有更简单的方法来查询 MySql。
【讨论】: