接触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){
//处理数据
});
好了,至此我的基本目的也就差不多实现了。
这些他的 项目主页 上不是说的很清楚么…
对,先看看他们的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