NodeJS与MySql的相关操作
NodeJS与MySql的相关操作
接触NodeJS已经有一段时间了,书看了不少,实践太少,今天突然想起要重温一下基础知识。鉴于自己平时喜欢php+mysql的组合,一时兴起就像弄一个node加mysql的例子。于是开始四处搜罗资料,本以为是一件很简单的事情,却不想其中是波折连连。
首先,安装nodejs的mysql包这个就不多说了:
npm install mysql
接下来其实思路很简单,说白了就是连接mysql——选择数据库——执行sql语句,但是当我按照网上的资料开始动手写起来的时候,却发现效果不能出现,命令行错误一堆,mysql死活连接不上。于是我开始慌了,然后慢慢平静,开始一行一行查看代码,网上多表明链接数据库使用require("mysql").Client
,我也就照这么做了,所以也就不行了。
后来想了一个土办法,首先在mysql安装正确的前提下require("mysql")
肯定是没有问题的,然后打印出改模块下的所有对象或属性console.log(require("mysql"))
,这下一目了然了,一看就找不到Client
方法,仔细一瞧发现有个createConnection
的方法,于是望文生义就开始使用这个方法尝试连接mysql,果不其然一下就OK了,具体如下:
var mq = require("mysql");
var mc = mq.createConnection({
user: "root",
password: "xxxxxx"
});
mc.connect();
回头再想想,为什么网上搜罗的方法会失效呢?也许是因为版本更新的原因,有些方法名称也更换了。接下来就是简单的操作数据库了,与其他语言无异:
mc.query("use database");
mc.query("select * from table", function(err, rs, fields){
//处理数据
});
好了,至此我的基本目的也就差不多实现了。
NodeJS与MySQL的相关操作
接触NodeJS已经有一段时间了,书看了不少,实践太少,今天突然想起要重温一下基础知识。鉴于自己平时喜欢php+mysql的组合,一时兴起就想弄一个Node.js加MySQL的例子。于是开始四处搜罗资料,本以为是一件很简单的事情,却不想其中是波折连连。
安装MySQL包
首先,安装Node.js的MySQL包这个步骤很简单:
npm install mysql
连接MySQL数据库
接下来,其实思路很简单,说白了就是连接MySQL——选择数据库——执行SQL语句。但当我按照网上的资料开始动手写起来的时候,却发现效果不尽人意,命令行错误一堆,MySQL死活连接不上。于是我开始慌了,然后慢慢平静,开始一行一行查看代码。网上多数表明连接数据库使用require("mysql").Client
,我也就照这么做了,结果自然不行。
后来我想到一个土办法,首先在MySQL安装正确的情况下,require("mysql")
肯定没问题。然后打印出该模块下的所有对象或属性console.log(require("mysql"))
,这下一目了然了,原来根本没有Client
方法,仔细一瞧发现有个createConnection
的方法,于是望文生义开始使用这个方法尝试连接MySQL,果然一下就OK了,具体如下:
var mysql = require("mysql");
var connection = mysql.createConnection({
host: "localhost",
user: "root",
password: "xxxxxx",
database: "mydatabase"
});
connection.connect(function(err) {
if (err) {
console.error("Error connecting to MySQL: " + err.stack);
return;
}
console.log("Connected to MySQL as id " + connection.threadId);
});
执行SQL查询
接下来就是简单的操作数据库了,与其他语言无异:
connection.query("SELECT * FROM mytable", function(err, results, fields) {
if (err) {
console.error("Error executing query: " + err.stack);
return;
}
console.log("Query results:", results);
});
// 关闭连接
connection.end();
插入数据
插入数据也非常简单:
var sql = "INSERT INTO mytable (column1, column2) VALUES (?, ?)";
var values = ["value1", "value2"];
connection.query(sql, values, function(err, result) {
if (err) {
console.error("Error inserting data: " + err.stack);
return;
}
console.log("Inserted row with ID: " + result.insertId);
});
总结
至此,我们已经完成了Node.js与MySQL的基本操作。通过以上示例,我们可以看到Node.js操作MySQL并不复杂。只要注意一些细节,如正确配置连接参数、处理回调函数中的错误等,就能顺利实现所需功能。希望这些示例能帮助大家更好地理解和使用Node.js与MySQL的结合。
这些他的 项目主页 上不是说的很清楚么…
比较喜欢楼主这样的卷文风格,因为我也是这样写文章的。说道1楼,我现在也开始先看项目的Readme,然后浏览一下源码,有些方法是没在说明文档中的。开源强大,也需要我们自己浏览呀
为什么我的fields提示报错
我一开始是搞iOS的,后来接触nodejs,期间我到github上接触了很多优秀的项目,看项目的主页肯定首先看的就是Readme啊。还有,楼主安装mysql的时候怎么不去npmjs.org去搜索一下,查看一下项目主页呢?
mark,干货!!
这个文档里有,你用久了就会发现它的坑不是在这个地方。。。而是对于空数组的处理!!!因为在JS中,数组是一种数组对象,所以对于对象的转义,它用的是toString()方法。。。。然而。。。。connection.query(‘INSERT INTO table SET ?’, {t: []})就会执行SQL语句INSERT INTO table SET t=。。。。。。t=后面根本没有值,是因为[].toString为空字符串!!!
为什么不用 sequelizejs
根据你提供的内容,关于Node.js与MySQL的相关操作,我们可以总结并扩展一些具体的示例代码,以便更好地展示如何进行连接、查询等常见操作。
连接MySQL
正如你在内容中提到的,mysql
模块可以通过createConnection
方法来创建连接。以下是一个完整的示例,包括错误处理和数据库选择:
const mysql = require('mysql');
// 创建连接
const connection = mysql.createConnection({
host: 'localhost', // MySQL服务器地址
user: 'root', // 用户名
password: 'your_password', // 密码
database: 'your_database' // 数据库名
});
// 连接到数据库
connection.connect((err) => {
if (err) {
console.error('Error connecting to MySQL:', err.stack);
return;
}
console.log('Connected as id ' + connection.threadId);
});
执行SQL查询
你可以通过connection.query()
方法来执行SQL查询。这里是一个查询的例子,包括如何处理返回的数据:
// 执行SQL查询
connection.query('SELECT * FROM your_table', (error, results, fields) => {
if (error) throw error;
// 输出结果
console.log('查询结果:', results);
});
// 关闭连接
connection.end();
注意事项
- 错误处理:在实际应用中,错误处理是非常重要的。确保始终检查回调函数中的错误参数。
- 数据库选择:在连接后可以立即选择数据库,或者在查询前指定。
- 资源管理:在完成所有操作后,记得调用
connection.end()
来关闭连接,释放资源。
这些示例应该能帮助你更有效地使用Node.js操作MySQL数据库。希望这对你有所帮助!