2014-11-17 19 views
7

Tôi đã thử nghiệm mô hình Employee.js sau đây trong Sails.js và tôi đã tìm thấy một thứ có vẻ khó hiểu đối với tôi.Xác thực mẫu không thành công trong Sails.js

Khi biểu mẫu để tạo Nhân viên mới được đăng, tôi nhận được các lỗi sau với định nghĩa đầu tiên của mô hình Employee.js, nhưng định nghĩa thứ 2 của Employee.js hoạt động. Vậy sự khác biệt giữa hai định nghĩa của Employee.js là gì?

Lỗi:

Error (E_VALIDATION) :: 3 attributes are invalid 
    at WLValidationError.WLError (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/error/WLError.js:33:18) 
    at new WLValidationError (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/error/WLValidationError.js:20:28) 
    at /usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/query/validate.js:45:43 
    at allValidationsChecked (/usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/core/validations.js:195:5) 
    at done (/usr/local/lib/node_modules/sails/node_modules/waterline/node_modules/async/lib/async.js:135:19) 
    at /usr/local/lib/node_modules/sails/node_modules/waterline/node_modules/async/lib/async.js:32:16 
    at /usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/core/validations.js:186:14 
    at done (/usr/local/lib/node_modules/sails/node_modules/waterline/node_modules/async/lib/async.js:135:19) 
    at /usr/local/lib/node_modules/sails/node_modules/waterline/node_modules/async/lib/async.js:32:16 
    at /usr/local/lib/node_modules/sails/node_modules/waterline/lib/waterline/core/validations.js:157:64 

Invalid attributes sent to Employee: 
• name 
    • `undefined` should be a string (instead of "null", which is a object) 
    • "required" validation rule failed for input: null 
• email 
    • `undefined` should be a email (instead of "null", which is a object) 

    • "required" validation rule failed for input: null 
• password 
    • `undefined` should be a string (instead of "null", which is a object) 
    • "required" validation rule failed for input: null 

Định nghĩa 1: Employee.js

module.exports = { 
    attributes: { 

    name: { 
     type: 'STRING', 
    }, 

    email: { 
     type: 'STRING', 
     email: true, 
    }, 

    password: { 
     type: 'STRING', 
    }, 

    toJSON: function() { 
     var obj = this.toObject(); 

     return { 
     name: obj.name, 
     email: obj.email, 
     password: obj.password 
     } 
    } 

    } 
}; 

Definition2: Employee.js

module.exports = { 
    attributes: { 

    name: 'STRING', 
    email: 'STRING', 
    password: 'STRING', 

    toJSON: function() { 
     var obj = this.toObject(); 

     return { 
     name: obj.name, 
     email: obj.email, 
     password: obj.password 
     } 
    } 

    } 
}; 

Các hình thức để tạo một nhân viên mới là như sau:

<form action="/signupemployee" method="POST"> 
    <table> 
    <tr><td>Name</td><td><input type=”text” name=”name”></td></tr> 
    <tr><td>Password</td><td><input type=”password” name=”password”></td></tr> 
    <tr><td>Email</td><td><input type=”email” name=”email”></td></tr> 
    <tr><td></td><td><input type="submit"></td> 
    </table> 
</form> 
+0

gì tuyến đường của bạn và điều khiển cái nhìn như thế nào? – CaseyWebb

Trả lời

0

Chỉ có một sự khác biệt mà nên tồn tại. Trong mô hình thứ hai của bạn, thuộc tính email sẽ không yêu cầu một chuỗi có chứa định dạng email hợp lệ. Theo hiểu biết của tôi, các định nghĩa như;

name: { 
    type: "STRING" 
} 

name: "STRING" 

đang dự định được tương đương, vì vậy đây là khả năng một lỗi trong mực nước.

Mặc dù câu hỏi này được hỏi một thời gian trước đây, vẫn có thể đáng để giải quyết một vấn đề để đảm bảo vấn đề được giải quyết.

0

này nên làm việc:

email: { 
    type: 'email', 
    required: true, 
    unique: true 
} 
Các vấn đề liên quan