2017-06-02 62 views
0

我正在嘗試Sequelize內置的驗證器。型號定義:Sequelize驗證拋出[對象對象]錯誤

module.exports = function(sequelize, DataTypes) { 
var Device = sequelize.define('Device', { 
    model_name: { 
     type: DataTypes.STRING, 
     validate: { 
     notNull: { 
      args: true, 
      msg: 'Model name needed' 
     } 
     } 
    } 
    ... 

bulkCreate

Device.bulkCreate(csvOutput, { validate: true }) 
    .then(function() { 
    console.log('Records inserted into database') 
    }) 
    .catch(function(err) { 
    console.log('Error encountered: ' + err.message) 
    }) 

爲了測試,我試圖插入一個空白領域model_name。我也試圖包含一個合適的型號名稱。

上述兩種情況都會產生一個簡單的錯誤[object Object]。我似乎無法弄清楚爲什麼。希望有人能在這裏揭開一些光芒!

注:該錯誤消失,如果我從模型中移去validate完全。

+0

'args'應該是一個被替換列允許的值的數組。在你的情況下,沒有必要'args'道具,嘗試刪除它 –

+0

@TilekbekovYrysbek我直接嘗試'notNull:true'(沒有味精),但沒有工作 – artze

+0

只是改變驗證它'notNull:{味精: '需要模型名稱'}' –

回答

0

我找到了答案,我在這裏發佈它以防萬一這可能對任何人都有幫助。

更改該線console.log('Error encountered: ' + err.message)只是console.log(err)允許錯誤消息以在控制檯上正確顯示。

字符串連接防止示出(僅允許[object Object]要顯示)的錯誤消息。

並顯示錯誤消息,該問題變得明顯驗證notNull已被棄用並且應該由列屬性allowNull(注意,這是一個列屬性,而不是一個驗證)