基于Node.JS索引mp3 ID3 tag信息并存储入MySQL数据库
来源:互联网 发布:2017亚吉铁路现状知乎 编辑:程序博客网 时间:2024/06/05 15:50
注意中文编码问题:客户端代码建立connection时将charset设置为binary,这个与服务器端的默认latin1是兼容的。
var id3 = require("node-id3"),path = require("path"),fs_walk = require('fs-walk'),mysql = require('mysql');var pool = mysql.createPool({host : 'localhost', user : 'root', password : '', database : 'musicDB', //一般sql数据库名称需要在外部创建,里面的table可以在代码里创建connectionLimit: 10,charset: 'binary'});/*CREATE TABLE music_info( id INTEGER PRIMARY KEY AUTO_INCREMENT, absPath VARCHAR(512) NOT NULL, album VARCHAR(512), artist VARCHAR(512), title VARCHAR(512), trackNumber INTEGER, albumType CHAR );*///debug:pool.on('acquire', function (connection) { console.log('Connection %d acquired', connection.threadId);});pool.on('release', function (connection) { console.log('Connection %d released', connection.threadId);});fs_walk.walkSync('d:/Music', function(basedir, filename, stat) {console.log("walkSync: basedir="+basedir+" filename="+filename);if(stat.isDirectory()){console.log("walkSync: skip dir");}else if(!filename.endsWith(".mp3")){console.log("walkSync: skip non-mp3 file");}else{var absPath = path.join(basedir, filename)var tags = id3.read(absPath)//console.log("walkSync: tags="+JSON.stringify(tags));var album = tags.album;var title = tags.title;var artist = tags.artist;var trackNumber = Number(tags.trackNumber);//怎么获得SQL INSERT返回的id主键值?//TODO: 尽管使用了pool,但假如每个INSERT请求都要创建一个connection,显然有性能问题//而且这里应该使用批量插入BULK INSERT模式以提高性能var query = pool.query(/*{sql: "INSERT INTO `music_info`(`absPath`, `album`, `artist`, `title`, `trackNumber`) VALUES(?,?,?,?,?)",timeout: 20000, //20svalues: [absPath, album, artist, title, trackNumber] }*/"INSERT INTO `music_info` SET ?",{absPath: absPath, album: album, artist: artist, title: title, trackNumber: trackNumber},function(err, rows, fields){if(err){console.log("pool.query INSERT ERROR "+err);}else{console.log("pool.query INSERT SUCCESS");}});console.log("walkSync: query="+JSON.stringify(query));}});
阅读全文
0 0
- 基于Node.JS索引mp3 ID3 tag信息并存储入MySQL数据库
- MP3 Tag id3(MP3标签 id3)
- 利用《Java MP3 ID3 Tag Library》读取mp3文件ID3信息
- mp3 音频 音乐 tag ID3 ID3V1 ID3V2 标签 读取信息
- MP3音频文件信息ID3
- MP3 ID3信息解析
- mp3 音频 音乐 tag ID3 ID3V1 ID3V2 标签 读取信息 获得图片 jpeg bmp 图片转换
- MP3文件的ID3 Tag是什么?
- mp3 音频 音乐 tag ID3 ID3V1 ID3V2 标签 读取信息 获得图片 jpeg bmp 图片转换(上)
- mp3 音频 音乐 tag ID3 ID3V1 ID3V2 标签 读取信息 获得图片 jpeg bmp 图片转换(下)
- C# 获取 MP3信息结构 的一个小例子(基于v1版的ID3)
- Node.js 连接 MySQL 并进行数据库操作
- Node.js 连接 MySQL 并进行数据库操作
- Node.js 连接 MySQL 并进行数据库操作
- C#获取mp3 Tag信息
- C#获取mp3 Tag信息
- mutagen编辑mp3 id3的信息
- 获取mp3里的id3信息
- Gradle配置dependencies
- JVM GC的各种问题
- osql -E登录报错:设置SQL Server不允许远程连接这个事实可能会导致失败
- struct regmap *syscon;初始化
- poj 2631 树的直径裸题 注意设置n
- 基于Node.JS索引mp3 ID3 tag信息并存储入MySQL数据库
- windows dubbo-admin本地编译打包
- FLV文件格式——实例分析
- 如何判断单链表是否有环、环的入口、环的长度和总长
- MyBatis L2 Cache ---ignite
- cocos2d-x-lua-加载官方test项目
- 【stm32f407】flash编程
- system、wait,waitpid,fork使用时注意
- iOS 字典存入int型数据