2016-04-03 143 views
0

我有一個模型的行程Sequelize是允許用戶鍵入「空」甚至允許爲空:假

var Itinerary = sequelize.define('Itinerary', { 
    title: { 
    type: DataTypes.STRING, 
    allowNull: false, 
    validate: { 
     notEmpty: true 
    } 
    } 
}) 

這適用於防止空的輸入,但如果我輸入「空」它仍然增加了我數據庫。閱讀文檔,它看起來應該防止這種情況發生?難道我做錯了什麼?

+0

你是否直接設置title =「null」(即值爲null的字符串)? – scottjustin5000

+0

是的。或者我不正確地理解文檔? – paulducsantos

回答

1

Sequelize(和db)將「null」解釋爲有效的字符串。

itinerary.title ='null'; 

不同於:

itinerary.title = null; 

你可以添加額外的驗證方法模型尋找這個字符串,如果你想空。

var Itinerary = sequelize.define('Itinerary', { 
    title: { 
    type: DataTypes.STRING, 
    allowNull: false, 
    nullorEmpty: function() { 
     if (!this.title || (this.title === 'null') { 
     throw new Error('title must be set') 
     } 
    } 
    } 
})