2017-08-27 3 views
0

Ich frage mich, die Art dieses Fehlers? Jede Idee Debugging wird sehr geschätzt werden!Sequelize Base Error: Null

Unhandled rejection SequelizeBaseError: null 
    at /Users/master/node_modules/sequelize/lib/instance-validator.js:74:14 
    at tryCatcher (/Users/master/node_modules/bluebird/js/release/util.js:16:23) 
    at Promise._settlePromiseFromHandler (. 

Ich glaube, ich in allen erforderlichen Bereichen in etwa wie folgt bin vorbei:

app.post("/api/posts", function(req, res) { 
    console.log(req.body); 
    db.Post.create({ 
    image: req.body.image, 
    caption: req.body.caption, 
    tags: req.body.tags 
    }).then(function(dbPost) { 
    res.redirect('/'); 
    console.log("posted!") 
    }); 
}); 

Überprüfung allowNotNull, Datentyp ok und so weiter

Hier mein Modell:

var Post = sequelize.define("Post", { 
    caption: { 
     type: DataTypes.TEXT, 
     allowNull: false, 
     validate: { 
     len: [1] 
     } 
    }, 
    likes: { 
    type: DataTypes.INTEGER, 
    defaultValue: 0 
    }, 
    image: { 
    type: DataTypes.STRING, 
    allowNull: false 
    }, 
    tags: { 
    type: DataTypes.STRING 
    } 
} 

Antwort

1

Dies ist eine typische Unhandled Promise Rejection Error, und liegt daran, dass Sie keine haben .catch nach dem .then:

app.post("/api/posts", function(req, res) { 
    console.log(req.body); 
    db.Post.create({ 
    image: req.body.image, 
    caption: req.body.caption, 
    tags: req.body.tags 
    }).then(function(dbPost) { 
    res.redirect('/'); 
    console.log("posted!") 
    }).catch(function(error) { 
    // Handle the error here 
    console.error(error); 
    }); 

Es ist ein Fehler im Code, aber aufgrund der asynchronen Natur von Versprechen und dass Sie nicht den Fehler fangen Sie eigentlich gar nicht bekommen wissen, was es ist.

+0

Sie für mich genagelt! Sehr geschätzt Ihre Zeit! –

+0

Fügen Sie die Funktion 'next' in' catch' block hinzu: 'catch (err) {... next (err)}', weil in Ihrem Beispiel der Server im Fehlerfall keine Antwort sendet. – alexmac

+0

@alexmac daher habe ich den Kommentar '// Handle the error here 'hinzugefügt. Da ich nicht weiß, wie Moh K mit seinen Fehlern umgehen will, überlasse ich ihm die Entscheidung. – Svenskunganka

Verwandte Themen