Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了基于Node.JS索引mp3 ID3 tag信息并存储入MySQL数据库大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

注意中文编码问题:客户端代码建立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,//20s
			values: [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));
	}
});

大佬总结

以上是大佬教程为你收集整理的基于Node.JS索引mp3 ID3 tag信息并存储入MySQL数据库全部内容,希望文章能够帮你解决基于Node.JS索引mp3 ID3 tag信息并存储入MySQL数据库所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。