Я пытаюсь добавить запрос на сайт, но не понимаю, какую ошибку я получаю. Я отправляю четыре текстовых элемента, я уверен, что они правильные (размер, тип), и мне удается добавить элемент вручную в моей базе данных без проблем. Это не мой сайт, я не знаю, как это работает, поэтому я повторил еще один запрос. Однако ошибка говорит о том, что один из моих элементов слишком длинный, что не так, поэтому я немного растерялся.
Вот мой POST-запрос
app.post("/api/addOS" , function(req, res) {
if(!(apikeys[req.query.username]===req.query.apikey) || (req.query.username == undefined) || (req.query.apikey == undefined)) {
res.json({"error" : "not allowed"});
} else {
var con = new Database();
var query = "INSERT INTO BRAND (name,abbr,color,type) VALUES ('"+req.body.name+"','"+req.body.abbr+"','"+req.body.couleur+"','"+req.body.type+"')";
con.query(query).then(rows => {
res.json(rows);
});
}
});
Класс Database определен как следует
class Database {
constructor( ) {
this.connection = mysql.createConnection( {
host: "localhost",
user: "root",
password: "pswd",
database: "dbname"
} );
}
query( sql, args ) {
return new Promise( ( resolve, reject ) => {
this.connection.query( sql, args, ( err, rows ) => {
if ( err ){
return reject( err );
}
resolve( rows );
} );
} );
}
close() {
return new Promise( ( resolve, reject ) => {
this.connection.end( err => {
if ( err )
return reject( err );
resolve();
} );
} );
}
}
Ошибка, отображаемая на моей консоли веб-страницы, является следующей:
angular. js: 14525 Возможно необработанное отклонение: { "данные": NULL, "статус": - 1, "конфигурация": { "метод": "POST", "transformRequest": [NULL], "transformResponse": [NULL], "jsonpCallbackParam": "обратный вызов" , "url": "https://localhost: 4443 / api / addOS? username = test & apikey = z4oP > 3Jocv", "headers": {"Accept": "application / json, text / plain , /"}," name ":" testtest "," abbr ":" test "," type ":" os "," couleur ":" tre "}," statusText ":" " }
и на моей консоли это
(узел: 15728) UnhandledPromiseRejectionWarning: Ошибка: ER_DATA_TOO_LONG: слишком длинные данные для столбца 'abbr' в строке 1 в Query.Sequence._packetToError (C: \ wamp64 \ www\node \ node_modules \ mysql \ lib \ protocol \ sequenc es \ Sequence. js: 47: 14) в Query.ErrorPacket (C: \ wamp64 \ www\node \ node_modules \ mysql \ lib \ protocol \ sequence \ Query. js: 77: 18) в протоколе ._parsePacket (C: \ wamp64 \ www\node \ node_modules \ mysql \ lib \ protocol \ Protocol. js: 291: 23) в Parser._parsePacket (C: \ wamp64 \ www\node \ node_modules \ mysql \ lib \ protocol \ Parser. js: 433: 10) в Parser.write (C: \ wamp64 \ www\node \ node_modules \ mysql \ lib \ protocol \ Parser. js: 43: 10) в Protocol.write (C: \ wamp64 \ www\node \ node_modules \ mysql \ lib \ protocol \ Protocol. js: 38: 16) в Socket. (C: \ wamp64 \ www\node \ node_modules \ mysql \ lib \ Connection. js: 91: 28) в сокете. (C: \ wamp64 \ www\node \ node_modules \ mysql \ lib \ Connection. js: 525: 10) в Socket.emit (события. js: 223: 5) в addChunk (_stream_readable. * 1064) *: 309: 12) -------------------- at Protocol._enqueue (C: \ wamp64 \ www\node \ node_modules \ mysql \ lib \ protocol \ Протокол. js: 144: 48) в Connection.query (C: \ wamp64 \ www\node \ node_modules \ mysql \ lib \ Connection. js: 201: 25) в C: \ wamp64 \ www\node \ app. js: 92: 29 в новом Promise () в Database.query (C: \ wamp64 \ www\node \ app. js: 91: 16) в C: \ wamp64 \ www\node \ app. js: 379: 9 в Layer.handle [как handle_request] (C: \ wamp64 \ www\node \ node_modules \ express \ lib \ router \ layer. js: 95 : 5) в следующем (C: \ wamp64 \ www\node \ node_modules \ express \ lib \ router \ route. js: 137: 13) в Route.dispatch (C: \ wamp64 \ www\node \ node_modules \ express \ lib \ router \ route. js: 112: 3) в Layer.handle [как handle_request] (C: \ wamp64 \ www\node \ node_modules \ express \ lib \ router \ layer. js: 95: 5) (узел: 15728) UnhandledPromiseRejectionWarning: необработанное отклонение обещания. Эта ошибка возникла либо из-за того, что внутри asyn c -функции не было блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch (). (идентификатор отклонения: 1) (узел: 15728) [DEP0018] Предупреждение об устаревании: отклонения необработанного обещания устарели. В будущем отклонения обещания, которые не обрабатываются, завершат процесс Node.js с ненулевым кодом завершения.