首页 > 解决方案 > 获取带有数组图像的 json 对象返回意外的 json 结尾

问题描述

我确信它之前已经处理过,但我无法从谷歌找到另一个答案。当我使用邮递员获取路线时,它返回以下错误:

  1. [0] SyntaxError: JSON inpu [0]at JSON.parse () [0]at model.get (C:\Users\EA_Ma\Desktop\App-projects\majeksCorp\models\Services.js:55: 23) [0] 在 model.get (C:\Users\EA_Ma\Desktop\App-projects\majeksCorp\node_modules\sequelize\lib\model.js:3465:41) [0] 在 model.get (C:\用户\EA_Ma\Desktop\App-projects\majeksCorp\node_modules\sequelize\lib\model.js:3499:33) [0] 在 model.toJSON (C:\Users\EA_Ma\Desktop\App-projects\majeksCorp\node_modules \sequelize\lib\model.js:4368:12) [0] 在 JSON.stringify () [0] 在 stringify (C:\Users\EA_Ma\Desktop\App-projects\majeksCorp\node_modules\express\lib\response .js:1123:12) [0] 在 ServerResponse.json (C:\Users\EA_Ma\Desktop\App-projects\majeksCorp\node_modules\express\lib\response.js:260:14) [0] 在 C: \Users\EA_Ma\Desktop\App-projects\majeksCorp\routes\api\services.js:179:30 [0] 在 processTicksAndRejections (internal/process/task_queues.js:97:5)

这是受影响的架构:

     "use script";
     module.exports = (sequelize, Datatypes) => {return sequelize.define("service",{
    id: {
    type: Datatypes.UUID,
    primaryKey: true,
    defaultValue: Datatypes.UUIDV4,

  title: {
    type: Datatypes.STRING,
    required: true,
    allowNull: true,
  },
  category: {
    type: Datatypes.STRING,
    required: true,
    allowNull: true,
  },
  description: {
    type: Datatypes.STRING,
    required: true,
    allowNull: true,
  },
  picture: {
    type: Datatypes.STRING,
  },
  service_gallery: {
    type: Datatypes.STRING,
    defaultValue: null,
    get: function () {
      return JSON.parse(this.getDataValue("service_gallery"));
    },
    set: function (val) {
      return this.setDataValue("service_gallery", JSON.stringify(val));
    },
    allowNull: true,
  },
  date: {
    //Exakt den datum som personen registrera sig
    type: Datatypes.DATE,
    defaultValue: Datatypes.NOW,
  },

  //This is the columns or database
  updated_at: { type: Datatypes.DATE },
  deleted_at: { type: Datatypes.DATE },
  },

  {
  underscored: true, //This is created for it
  paranoid: true, //Database won't really delete information from database.
  }
  );
  };

这是我调用的方法。

router.get("/:category/:title", async(req, res) => {
 const errors = {};
 await db.service.findOne({
    where: {[Op.and]: [{category: req.params.category}, {title: req.params.title}]}
  })
  .then((service) => {
  if (!service) {
    errors.noservice = "Nothing was found";
    res.status(404).json(errors);
    return; 
    }
    if(service) return res.json(service);
    })
    .catch((err) => console.log(err));
    });

我认为错误源于架构中的这一行: return JSON.parse(this.getDataValue("service_gallery"));

标签: javascriptnode.jsjsonbackend

解决方案


推荐阅读