节点 JS:将音乐元数据存储在 JSON 上
Node JS: storing music metadata on JSON
我是 Node JS 中的一个乞丐,我在尝试构建 JSON 对象时遇到了麻烦。
我找到了一个模块来查找 mp3 文件的元数据,我想将此信息存储在 JSON obj 上。
我的应用程序的行为如下:
- 阅读我的"音乐"目录。
- 对于目录上的每个文件,提取他的信息并将其存储在结构"jsonSong"中。将"jsonSong"推入名为"jsonObj"的结构中。
- 制作一个控制台.log"jsonObj"以查看结果。
代码如下:
var fs = require('fs');
var mm = require('musicmetadata');
fs.readdir('./music/', function(err,files) {
if(err) throw err;
var jsonObj = {
songs: []
};
files.forEach(function(file){
var jsonSong = {
title:"",
artist:"",
duration:"",
pic:""
}
var parser = new mm(fs.createReadStream('./music/'+file));
parser.on('title', function(result) {
jsonSong.title = result;
});
parser.on('albumartist', function(result) {
jsonSong.artist = result;
});
parser.on('duration', function(result) {
jsonSong.duration = result;
});
parser.on('picture', function(result) {
jsonSong.pic = result;
});
jsonObj.songs.push(jsonSong);
});
console.log(jsonObj);
});
我这里的问题是"jsonSong"似乎是空的,这是最后一个控制台的结果.log(我的音乐目录上有 3 首歌,所以我在结构上有 3 个条目):
{ songs:
[ { title: '', artist: '', duration: '', pic: '' },
{ title: '', artist: '', duration: '', pic: '' },
{ title: '', artist: '', duration: '', pic: '' } ] }
谢谢你的时间。
在填充数据之前,您必须等待回调执行,您可以使用 done 事件。
parser.on('done', function (err) {
console.log(jsonObj);
});
相关文章:
- 在WebSQL服务器中存储JSON数据
- (临时)在Web应用程序中存储JSON搜索结果
- 删除本地存储 JSON 对象并重建阵列
- 在javascript数组中存储JSON值
- 在变量中存储 JSON 数据时出错
- 使用操作系统在文件中的持久性存储 JSON.文件
- 如何从本地存储 json 数组中删除上次添加的元素
- HTML5 本地存储 JSON 多个对象
- 使用Meteor.js存储JSON对象
- 在数据库中存储json数据以及json对象的格式
- 如何在变量中存储JSON
- 在JavaScript中使用和存储json文本
- MongoDB是存储JSON结构的好选择吗
- 如何存储JSON对象的时间戳
- 可以在amazon s3上存储json
- Javascript中存储JSON响应的大小
- 是否建议在数据属性中存储JSON,而不是使用单独的数据属性
- 在属性中存储JSON响应值
- 如何在localStorage (Javascript)中使用数组存储JSON
- 如何在服务器端存储json对象并使用它进行响应