2016-06-07 25 views
0

我有一個像回調不module.exports定義

var helper = require('./helper'); 

router.get('/create', function(req, res, next){ 
    helper.saveItem('itemId', function(err) { 
     if(err) { 
      return next(err); 
     } 
     next(); 
    }); 
}); 

和助手helper.js路線

module.exports = { 
    saveItem: function(id, callback) { 
     var item = new ItemModel({Id: id}); 
     item.save().exec(callback); 
    }, 
} 

當我打電話saveItem的「身份證」參數具有正確的價值,但回調是未定義的。我不明白爲什麼。

+0

你確定你發佈了相同的代碼嗎?可能是一些變量名的拼寫錯誤。在'callback'中不像拉丁語'c' –

+0

在'saveItem'裏嘗試'console.log(arguments)' –

+0

我做了console.log,並且我得到了正確的id值和未定義的回調。我檢查了錯別字,複製/粘貼參數名稱.. – Peter

回答

0

使用此代碼。而不是直接在保存方法中給出exec方法傳遞迴調。

module.exports = { 
    saveItem: function(id, callback) { 
     var item = new ItemModel({Id: id}); 
     item.save(callback); 
    }, 
} 
+0

這工作。謝謝。 回調仍然是未定義的時候我console.log它在saveItem,但它得到正確執行。奇怪的。 – Peter

+0

你可以發送你的代碼嗎?因爲它對我的工作很好,即使console.log是打印功能 –