2016-11-21 24 views
0

聲明:有點新的快遞/節點,工作在照片託管/畫廊應用程序作爲實踐。這是不正確的快遞使用路線嗎?

我的理解是路由器被用作從服務器到客戶端/數據庫的端點。

在這種情況下我有一個名爲storeImages功能,其存儲圖像位置到DB而是被從節點JS應用程序內調用和不是直接從客戶端請求

我應該將storeImages作爲路由器文件夾外的幫助函數嗎?

我有點困惑,因爲即使這不是從客戶端post/get請求直接調用,我覺得這些images.js路由本質上與Image.js模型綁定在一起......並且數據庫操作應該不存在於它之外。這樣想我錯了嗎?

如果實際上最好將它保存在路由器文件夾中,那麼將所述功能與路由器一起導出的正確方法是什麼?低於目前的方法是行不通的,我也嘗試:

module.exports = {路由器:路由器, storeImages:storeImages, }

但是,這也不能工作。

var express = require('express'); 
var router = express.Router(); 
var Image = require('../models/image'); 

router.get('/getImageLocations', function(req,res){ 
    //Do Stuff 
}); 


exports.storeImages = function(memoryId, location, comment){ 
    var newImage = new Image({ 
     ... 
    }); 
    Image.storeImageURL(newImage, function(err, user){ 
     ... 
    }) 
}; 

module.exports = router; 
+0

數據庫函數可以放在模型文件中,而路徑文件可以有其他功能,如檢查特定端點的登錄用戶。 – 0xtvarun

回答

2

路由器是處理http請求的函數。現在,關於什麼需要進入路由器文件並沒有什麼不明確的規則,但根據我在您的代碼中理解的內容,storeImages是一個接受來自params和存儲器的數據的函數。這裏有一對夫婦的拇指規則:

  • 如果功能連接到路由,即它僅用於在調用一個特定的路線,這是有道理的,以保持該路由器
  • 如果函數內在多個路徑中使用時,應將其作爲路徑文件外的共享實用程序功能存儲。
  • 如果它是與模型相關的功能,則可以將其存儲在模型文件中,具體取決於您如何處理模型層