Javascript Sails.js-控制器问题

Javascript Sails.js-控制器问题,javascript,node.js,sails.js,ejs,Javascript,Node.js,Sails.js,Ejs,我正在开发一个控制器,使用以下代码(SoundCloudController.js)从SoundCloud的API解析JSON,以便检索一些数据。 当我提起应用程序并转到我创建的视图时;“result.ejs”,它崩溃了 module.exports = { // Search for something // SoundCloud API reference: // https://developers.soundcloud.com/docs/api/referenc

我正在开发一个控制器,使用以下代码(SoundCloudController.js)从SoundCloud的API解析JSON,以便检索一些数据。 当我提起应用程序并转到我创建的视图时;“result.ejs”,它崩溃了

module.exports = {

    // Search for something
    // SoundCloud API reference:
    // https://developers.soundcloud.com/docs/api/reference#tracks
    result: function (req, res, next) {
        SoundCloud.find(function foundSounds(err, sounds) {
            if (err) return next(err);

            var http = require('http');

            function process_response(webservice_response, sound, callback) {
                var webservice_data = "";
                webservice_response.on('error', function (e) {
                    console.log(e.message);
                    callback("Error: " + e.message);
                });
                webservice_response.on('data', function (chunk) {
                    webservice_data += chunk;
                });

                // Response from query
                webservice_response.on('end', function () {
                    // Parse everything from the response (JSON)
                    sound_data = JSON.parse(webservice_data);
                    // Find the title of the first match
                    sound.title = sound_data.title;
                    // The duration provided by SoundCloud is in milliseconds
                    // convert to MM:SS format for readability
                    sound.duration = millis_to_min_sec(sound_data.duration);
                    // Logo for SoundCloud
                    sound.logo = 'http://icons.iconarchive.com/icons/sicons/basic-round-social/512/soundcloud-icon.png';
                    console.log(sound.title + ' ' + sound.duration);
                    callback();
                });
            };

            // Define host, path etc. for the search (JSON returned)
            function get_sound_data(sound, callback) {
                //http://api.soundcloud.com/tracks.json?client_id=CLIENT_ID_HERE&q=smile%20like%20you%20mean%20it
                console.log(sound.title);
                console.log(sound.duration);
                options = {
                    host: 'http://api.soundcloud.com',
                    port: 80,
                    path: '/tracks.json?client_id=O3UkayfZTJjNeahVhqTiHcZ5iowrMRpk&q=smile like you mean it&limit=2',   // client_id is given above, q='something to search for', limit to 2 results
                    method: 'GET'
                };

                var webservice_request = http.request(options, function (response) {
                    process_response(response, sound, callback)
                });
                webservice_request.end();

            };

            // Convert milliseconds to MM:SS format (minutes:seconds)
            function millis_to_min_sec(millis) {
                var minutes = Math.floor(millis / 60000);
                var seconds = ((millis % 60000) / 1000).toFixed(0);
                return minutes + ':' + (seconds < 10 ? '0' : '') + seconds;
            };

            async.each(sound.sounds, get_sound_data, function(err) {
                if(err) console.log(err);
                console.log('done');

                res.view({
                    sound: sound
                });
            });
        });
    },

};
module.exports={
//寻找某物
//SoundCloud API参考:
// https://developers.soundcloud.com/docs/api/reference#tracks
结果:功能(req、res、next){
SoundCloud.find(函数foundSounds(错误,声音){
if(err)返回next(err);
var http=require('http');
函数进程响应(webservice响应、声音、回调){
var webservice_data=“”;
webservice\u响应.on('error',函数(e){
控制台日志(e.message);
回调(“错误:+e.message”);
});
webservice\u response.on('data',函数(块){
webservice_data+=块;
});
//查询的响应
webservice\u response.on('end',function(){
//解析响应中的所有内容(JSON)
sound\u data=JSON.parse(webservice\u数据);
//查找第一场比赛的标题
sound.title=sound\u data.title;
//SoundCloud提供的持续时间以毫秒为单位
//转换为MM:SS格式以提高可读性
sound.duration=毫秒到分钟秒(sound\u data.duration);
//SoundCloud的徽标
sound.logo=http://icons.iconarchive.com/icons/sicons/basic-round-social/512/soundcloud-icon.png';
console.log(sound.title+“”+sound.duration);
回调();
});
};
//为搜索定义主机、路径等(返回JSON)
函数获取声音数据(声音、回调){
//http://api.soundcloud.com/tracks.json?client_id=CLIENT_ID_HERE&q=smile%20like%20you%20mean%20it
console.log(sound.title);
console.log(声音、持续时间);
选项={
主持人:'http://api.soundcloud.com',
港口:80,
路径:'/tracks.json?client_id=o3ukayfztjneahvhqtihcz5iowrmrpk&q=smile-limit=2',//上面给出了client_id,q='something to search',限制为2个结果
方法:“获取”
};
var webservice_request=http.request(选项、函数(响应){
处理\u响应(响应、声音、回调)
});
webservice_request.end();
};
//将毫秒转换为MM:SS格式(分钟:秒)
功能毫秒至分钟秒(毫秒){
var分钟=数学地板(毫/60000);
变量秒=((毫秒%60000)/1000).toFixed(0);
返回分钟+':'+(秒<10?'0':'')+秒;
};
async.each(sound.sounds,获取声音数据,函数(err){
if(err)console.log(err);
console.log('done');
res.view({
声音:声音
});
});
});
},
};
访问localhost:1337/music/result时出现的错误消息:

错误:发送500(“服务器错误”)响应: 错误(E_未知)::遇到意外错误 :ER\u错误\u字段\u错误:“where子句”中的未知列“NaN” 在Query.Sequence.\u packetToError(C:\Users\InWhi\Desktop\ISQA4380\Group-6-Project\node\u modules\sails mysql\node\u modules\mysql\lib\protocol\sequences\Sequence.js:48:14) 在Query.ErrorPacket(C:\Users\InWhi\Desktop\ISQA4380\Group-6-Project\node\u modules\sails mysql\node\u modules\mysql\lib\protocol\sequences\Query.js:83:18) at Protocol.\u ParsePackage(C:\Users\InWhi\Desktop\ISQA4380\Group-6-Project\node\u modules\sails mysql\node\u modules\mysql\lib\Protocol\Protocol.js:280:23) 在Parser.write(C:\Users\InWhi\Desktop\ISQA4380\Group-6-Project\node\u modules\sails mysql\node\u modules\mysql\lib\protocol\Parser.js:73:12) 在Protocol.write(C:\Users\InWhi\Desktop\ISQA4380\Group-6-Project\node\u modules\sails mysql\node\u modules\mysql\lib\Protocol\Protocol.js:39:16) 在插座上。(C:\Users\InWhi\Desktop\ISQA4380\Group-6-Project\node\u modules\sails mysql\node\u modules\mysql\lib\Connection.js:96:28) 在emitOne(events.js:96:13) 在Socket.emit(events.js:188:7) 在readableAddChunk(_stream_readable.js:176:18) 在Socket.Readable.push(_stream_Readable.js:134:10) 在TCP.onread(net.js:548:20) -------------------- at Protocol.\u排队(C:\Users\InWhi\Desktop\ISQA4380\Group-6-Project\node\u modules\sails mysql\node\u modules\mysql\lib\Protocol\Protocol.js:141:48) 在PoolConnection.query(C:\Users\InWhi\Desktop\ISQA4380\Group-6-Project\node\u modules\sails mysql\node\u modules\mysql\lib\Connection.js:201:25) 在查找(C:\Users\InWhi\Desktop\ISQA4380\Group-6-Project\node\u modules\sails mysql\lib\adapter.js:838:20) 之后(C:\Users\InWhi\Desktop\ISQA4380\Group-6-Project\node\u modules\sails mysql\lib\connections\spawn.js:84:5) 在C:\Users\InWhi\Desktop\ISQA4380\Group-6-Project\node\u modules\sails mysql\lib\connections\spawn.js:40:7 在Ping.onOperationComplete[as\u callback](C:\Users\InWhi\Desktop\ISQA4380\Group-6-Project\node\u modules\sails mysql\node\u modules\mysql\lib\Pool.js:99:5) 在Ping.Sequence.end(C:\Users\InWhi\Desktop\ISQA4380\Group-6-Project\node\u modules\sails mysql\node\u modules\mysql\lib\protocol\sequences\Sequence.js:96:24) 在Ping.Sequence.OkPacket(C:\Users\InWhi\Desktop\ISQA4380\Group-6-Project\node\u modules\sails mysql\node\u modules\mysql\lib\protocol\sequences\Sequence.js:105:8) 在