TypeError: Невозможно прочитать свойство 'Transfer-Encoding' из неопределенного, используя multer в Loopback - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть удаленный метод в Loopback, который выполняет 3 sql запросов.Я попытался добавить выгрузку файла к этому методу, используя multer.Я использую POSTMAN для тестирования всего удаленного метода.Когда я вставляю файл и текст для comedien_perso_nom, comedien_perso_prenom и nationalite и отправляю запрос, я получаю эту ошибку:

TypeError : Cannot read property 'transfer-encoding' of undefined 

Я уверен, что это связано с multer, но непонимаю, какую ошибку я совершаю.Также для вставки photoscomedien Я хочу вставить путь к файлу после вставки, но я не знаю, как.Это мой дистанционный метод:

'use strict';
var app = require('../../server/server.js');
var multer = require('multer');
var fs = require('fs');

module.exports = function(cm_comediens) {
    var uploadedFileName = '';
    var storage = multer.diskStorage({
        destination: function (req, file, cb) {
            // checking and creating uploads folder where files will be uploaded
            var dirPath = 'server/storage/common'
            if (!fs.existsSync(dirPath)) {
                var dir = fs.mkdirSync(dirPath);
            }
            cb(null, dirPath + '/');
        },
        filename: function (req, file, cb) {
            // file will be accessible in `file` variable
            var ext = file.originalname.substring(file.originalname.lastIndexOf("."));
            var fileName = Date.now() + ext;
            uploadedFileName = fileName;
            cb(null, fileName);
        }
    });
  cm_comediens.setprofile1 = function (comedien_perso_nom,comedien_perso_prenom,nationalite,options,cb,req,res) {
    //  var userId = ctx.req.currentUser;
      const token = options && options.accessToken;
      const userId = token && token.userId;
      var upload = multer({
        storage: storage
    }).array('file', 12);
    upload(req, res, function (err) {
        if (err) {
            // An error occurred when uploading
            res.json(err);
        }
        res.json(uploadedFileName);
    });        
      var ds = app.datasources.mydb;
      var sql = "UPDATE cm_comediens SET comedien_perso_nom=?,comedien_perso_prenom=?,nationalite=? WHERE id_comedien IN ( SELECT id_comedien FROM (SELECT id_comedien FROM cm_comediens WHERE id_utilisateur= '" + userId + "') as MakeitWork) ";
      var sql2 = "UPDATE photoscomedien SET photo_profile=0 WHERE id_comedien IN ( SELECT id_comedien FROM (SELECT id_comedien FROM cm_comediens WHERE id_utilisateur= '" + userId + "') as MakeitWork2)";
      var sql3 = "INSERT INTO photoscomedien (id_comedien,photo_profile,path,name) VALUES ((SELECT id_comedien FROM cm_comediens WHERE id_utilisateur= '" + userId + "'),1,'" + fileName + "','" + fileName + "')";
      ds.connector.execute(sql, [comedien_perso_nom,comedien_perso_prenom,nationalite], function (err, cm_comedienss) {
      ds.connector.execute(sql2, [], function (err, cm_comedienss) {
      ds.connector.execute(sql3, [], function (err, cm_comedienss) {
          if (err) console.error(err);
          cb(err, cm_comedienss);        
      });
      });
      });
  };
  cm_comediens.remoteMethod(
      'setprofile1',
      {
          http: { verb: 'PUT' },
          description: 'Update Comediens Infos Mon Profil Bloc 1 et Update photos',
           accepts:[
           { arg: 'comedien_perso_nom', type: 'string' },
           { arg: 'comedien_perso_prenom', type: 'string' }, 
           { arg: 'nationalite', type: 'string' } ,
           { arg: 'req',type: 'object',http: {source: 'req'}},
           { arg: 'res',type: 'object',http: {source: 'res'}},
           { arg: "options", "type": "object", "http": "optionsFromRequest"},
         //  { arg: 'idComedien', type: 'number' }
          ],
          returns: [{ arg: 'data', type: ['cm_comediens'], root: true },
                     { arg: 'result',type: 'string'}]
      }
  ); 
}

Любая помощь будет оценена.Спасибо

...