2017-01-20 53 views
0

我正在用貓鼬創建一個新模式並嘗試驗證不同的輸入,例如ip和pwd。 我們可以在UI部分進行驗證,但是我們可以在後端再次進行驗證嗎? 下面是示例代碼: -我們可以在模式創建時使用貓鼬進行驗證嗎

var mongoose = require('mongoose'), 
    Schema = mongoose.Schema; 

var ServerSchema = new Schema({ 
    serverIp: { type : String , required : true }, 
    Name: { type: String, required : true }, 
    serverType: {type: String , required : true }, 
    created_date: {type: Date, default: Date.now}, 
    updated_date: {type: Date, default: Date.now} 
}); 

我從來沒有在後端的部分工作,所以請原諒,如果這是一個新手的問​​題。

+0

貓鼬是一個後臺框架。它只會在後端執行數據驗證,而不會在前端執行。 – str

+0

@str:這就是我的問題是先生。我說我們可以通過** angular.js **在前端手段中進行驗證。但是我們也可以通過貓鼬做到這一點。 – TheMightyNight

+0

請參閱http://mongoosejs.com/docs/browser.html – str

回答

1

您甚至可以使用自定義正則表達式來執行驗證。例如像這樣:

var userSchema = new Schema({ 
    phone: { 
    type: String, 
    validate: { 
     validator: function(v) { 
     return /\d{3}-\d{3}-\d{4}/.test(v); 
     }, 
     message: '{VALUE} is not a valid phone number!' 
    }, 
    required: [true, 'User phone number required'] 
    } 
}); 

退房貓鼬validation docs

+0

JavaEvgen:這適用於電話號碼。由於d {3}將接受最少3個字符,但在ip中可以是1-3。我嘗試使用d {1-3},但它不起作用。請讓我知道這是否可以完成。 – TheMightyNight

+0

試試這個:'/^\ d {1,3} \。\ d {1,3} \。\ d {1,3} \。\ d {1,3}/$' – JavaEvgen

+0

它工作正常'/ \ d {1,3}。\ d {1,3}。\ d {1,3}。\ d {1,3} /'。謝謝。 – TheMightyNight