0

私は、yeoman の angular fullstack を初めて使用し、サーバー API コールバックを正しく構成していないようです。私はいくつかのコードをまとめました。これが間違っていることはわかっていますが、壁にぶつかりました。アドバイスをいただければ幸いです。

たとえば、単純な win32ole iTunes com 呼び出しを行い、ファイルパスを返すとします。

client/app/main.controller.js での GET 呼び出し

  $http.get('/api/iTunes/getxmlpath').success(function(path) {
    $scope.myfilepath = path;
  });

ルーティングは server/api/iTunes/index.js に設定されています

router.get('/getxmlpath', controller.getxmlpath);

server/api/iTunes/iTunes.controller.js の関連部分

exports.getxmlpath = function(req, res) {
  getWin32OlePath(serviceCallback);
};

function getWin32OlePath() {
  try {
    var win32ole = require('win32ole');
    var iTunesApp = win32ole.client.Dispatch('iTunes.Application');
    var xmlpath = iTunesApp.LibraryXMLPath();
    console.log('got itunes xml path: '+xmlpath);
    return res.json(200, xmlpath);
  } catch (err) {
    return handleError(res, err);
  }
}


/********
error handle the callbacks
**********/
var serviceCallback =
function(response){
  return function(err, obj){
    if(err) {
      response.send(500);
    } else {
        response.send(obj);
      }
    }
  }

grunt サーバーが失敗する

  Error: Route.get() requires callback functions but got a [object Undefined]
4

1 に答える 1