2014-02-12 39 views
0

我想在我的Web應用程序中實現內部郵箱。我試圖找出自己的東西,但我不知道是否我需要什麼。我想讓我的用戶在他們之間發送消息,但這不是一種聊天,它應該是一個內部郵箱,堅持到數據庫。你可以給我一些建議或鏈接開始我的問題?使用sails.js實現內部郵箱

感謝

+1

這是一個辦法寬泛的問題 - 你所要求的整個實現!你能不能更新你的問題,直到現在你已經做了什麼,以及你自己無法解決的問題。 – marionebl

+0

請不要只是問這麼做你的工作.. http://whathaveyoutried.com – gorelative

回答

1

你只需要添加模型是這樣的:

//Message.js 

module.exports = { 

    attributes: { 
    fromUser:'integer', 
    toUser:'integer', 
    title:'string', 
    body:'string', 
    haveReaded:'boolean' 
    } 

}; 

並添加你所需要的所有功能。例如,創建新的消息:

var msg = { 
    fromUser: %USER_ID%, 
    toUser: %TO_USER_ID%, 
    title: "Hi man!", 
    body: "How are you doing?", 
    haveReaded: false 
} 

Message.create(msg).done(function(err, msg){ 
    if(err) return console.log("Message sending error"); 
    console.log("Message send"); 
}); 

檢查新郵件:

Message.find().where({ toUser: : %USER_ID% }) 
.where({ haveReaded: false }) 
.exec(function(err, messages) { 
    if(messages.length > 0){ 
     console.log("User have " + messages.length + " new messages"); 
    }else{ 
     console.log("No new messages"); 
    } 
}); 
+0

感謝您的回覆。我如何知道一個用戶在線/離線,即用戶狀態是在線還是離線?有什麼方法可以找到,因爲我需要顯示用戶的狀態? – Mahahari

+0

您可以使用「日期」類型將「lastSeen」屬性添加到用戶模型。無論何時用戶執行一些操作(加載頁面,調用某個API,查看網頁),您都必須更新此屬性(lastSeen = currentTime + 5min)。 5分鐘 - 這是超時時間。爲了檢查用戶是否在線,您將lastSeen屬性與當前時間進行了比較。如果lastSeen小於當前時間,則表示用戶至少5分鐘不在線。 – Jaroslav

+0

你知道了..謝謝..我已經在我的模型中添加lastLogin作爲字段...用於顯示狀態.. – Mahahari