2013-01-31 57 views
0

在我現在正在開發的一個項目中,我有一些Web模型來表示表單提交等。例如,登錄表單(一個非常糟糕的示例)是如下:在客戶端JavaScript代碼中重用Node.js中的Web模型

var revalidator = require('revalidator'); // A node.js module for validation 

LoginForm = function(email, password) { 
    this.Email = email; 
    this.Password = password; 
}; 

LoginForm.prototype.validate = function() { 
    return revalidator.validate(this, { 
    properties: { 
     Email: { 
      description: 'The email address provided is not valid', 
      type: 'string', 
      format: 'email', 
      required: true 
     }, 
     Password: { 
      description: 'The password is not provided', 
      type: 'string', 
      required: true 
     } 
     } 
    }) 
}; 

exports.LoginForm = LoginForm; 

這工作在我目前的Node.js的設置目前很大,但我想知道是否有什麼辦法可以重新使用在客戶端的JavaScript代碼的那些模型。任何幫助將非常感激。

回答

1

Javascript是Javascript,可以分享該代碼。你必須記住瀏覽器和節點之間有一些區別。如果你想分享你的代碼,你不能使用require,並且必須在使用它之前檢查導出對象是否存在:

if(typeof exports === 'object'){ 
    exports.LoginForm = LoginForm; 
} else { 
    // your browser export 
} 
+0

我的問題更多的是在實踐方面。這些Web模型不在節點的「公共」目錄中。所以他們不能在客戶端訪問。可能的解決方法是將這些模型放在public/js/models目錄中。但是,這是推薦的解決方案。 – Yannis

+0

我總是把這些文件放到公用文件夾中。這標誌着它們可能是危險的,我知道我必須更加詳細地看待它們。 –

+0

感謝隊友。我會標記爲現在接受。 – Yannis

相關問題