节点mysql无法获得查询响应

时间:2019-11-14 22:59:13

标签: mysql sql node.js

在查询中传递函数时遇到麻烦。当我运行不带该功能的代码时,可以正常工作。邮递员将其卡在“发送请求”上

示例:

save() {
    return db.query(
      {
        sql: "INSERT INTO contenido (titulo, extencion_archivo, fecha_publicacion) VALUES (?, ?, ?)",
        values: [this.titulo, this.extension, this.fecha]
      }, function(err, res, fields) {
        //More code
      }
    );
  }

以下代码可以正常工作:

  save() {
    return db.query(
      {
        sql: "INSERT INTO contenido (titulo, extencion_archivo, fecha_publicacion) VALUES (?, ?, ?)",
        values: [this.titulo, this.extension, this.fecha]
      }
    );
  }

我如何调用保存方法:

exports.addVideo = (req, res, next) => {
  const titulo = req.body.titulo;
  const extension = req.file.mimetype.split("/")[1];
  const fecha = new Date();
  const videoUrl = req.file.filename;
  const video = new Videos(null, titulo, extension, fecha, videoUrl);
  video.save().then(() => {
    res.json('sending')
  })

};

1 个答案:

答案 0 :(得分:0)

您正在在函数save()上使用.then,但该函数不能保证返回函数。我认为这可能是您未收到邮递员要求的任何回复的原因。

尝试运行以下代码:

function save() {
    return new Promise((resolve, reject) => {
        db.query(
            {
                sql: "INSERT INTO contenido (titulo, extencion_archivo, fecha_publicacion) VALUES (?, ?, ?)",
                values: [this.titulo, this.extension, this.fecha]
            }, function (err, res, fields) {
                if (err) {
                    console.log("Error Occurred :", err);
                    reject();
                }
                console.log("Successfully Sent :", res);
                resolve();
            }
        );
    })
}

exports.addVideo = (req, res, next) => {
    const titulo = req.body.titulo;
    const extension = req.file.mimetype.split("/")[1];
    const fecha = new Date();
    const videoUrl = req.file.filename;
    const video = new Videos(null, titulo, extension, fecha, videoUrl);
    video.save().then(() => {
        res.json('sending')
    }).catch(() =>{
        res.json('Error Occurred')
    })

};

如果效果良好,请尝试使用此功能,否则,请告诉我,我会尽力帮助您解决此问题。

相关问题