2012-06-03 26 views
0

js專家:-)!我能否在Web項目中實施複雜的業務層(CRUD操作,算法,複雜的計算和優化,加載圖片,交互式用戶GUI,以csv和其他格式導出內容,時間驅動事件(如電子郵件新聞,安全方面,等等)完全與Node.js?Node.js或EJB?

回答

1

當然可以。你可以使用任何編程語言。

-2

簡短的回答是肯定的,對於其中的一些,Node.js的表現會非常好。

就我個人而言,我發現Node.js非常適合處理實時事件和多客戶端/服務器通信。

當談到複雜的計算和業務邏輯時,Node.js會變得棘手。通過它的本質,它可以異步運行事物,這意味着你希望工作的一些事情不會。像

var script = 0; 
for (i=0;i<10;i++){ 
    script = i 
} 
console.log(script); 

事情會返回一些數字0到9之間,最有可能爲0。如果你不使用它(有時候即使你),它可引起頭疼不計其數。有很多方法可以讓你按照你期望的方式工作,在最基本的層面上有回調。

var script = 0; 
var somefunction = function(i, callback){ 
    if(i < 10){ 
    i++; 
    somefunction(i, callback); 
    }else{ 
    callback(i); 
    } 
} 
somefunction(script, function(i){ console.log(i)} 

也有庫可以幫助控制流程,如async.js。

由於這個原因,雖然它可以使實施複雜的計算和業務邏輯有點困難。在我工作的一些項目中,我們使用python,ruby或PHP作爲業務邏輯的一部分,node.js處理與客戶端的實時通信。

+0

嗨,非常感謝您的回答。我有兩個選擇:帶有MySQL數據庫的JE66或帶有CouchDB的Node.js。我可以JE66。但我認爲我可以通過Sencha Framework學習node.js,以便在JavaScript中構建美麗而快速的Web應用程序。我沒有太多時間來了解node.js是否可以滿足業務邏輯的所有需求。也許最好在EJB和mySQL數據庫中使用JE66?最好的問候 – Laith

+0

數據庫的選擇是非常不同的,我建議看看http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis,以便對noSQL數據庫選項有一個很好的概述。至於要選擇什麼語言,我建議確定應用程序的功能,哪些功能對您很重要,哪些語言最適合這些功能和需求。 –

+1

-1:你的第一個代碼樣本總是將'9'打印出來給控制檯。 Node.js不是非確定性的,因爲你的答案似乎意味着。它不會阻塞IO操作(除了一些明確的情況外),有時會使編碼變得棘手 - 當涉及IO和回調時,事情可能並不總是按照您最初期望的順序運行。 –