NodeJS与MySql的相关操作
发布于 12 年前 作者 mailzwj 25266 次浏览 最后一次编辑是 8 年前

接触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){
    //处理数据
});

好了,至此我的基本目的也就差不多实现了。

8 回复

这些他的 项目主页 上不是说的很清楚么…

对,先看看他们的Readme可以省很多事!

比较喜欢楼主这样的卷文风格,因为我也是这样写文章的。说道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

回到顶部