Получение неопределенного - PullRequest
0 голосов
/ 30 мая 2019

Я работаю над LoopBack и Angular проектом.У меня есть объект JSON, но я получаю нулевой вывод при доступе к объекту JSON.

Я храню объект, подобный этому, var file = res.result.files.file;где res имеет объект JSON и доступ к объекту, как этот var filename = file.name;который возвращает Undefined,

как я могу получить имя из объекта JSON. Здесь выводится файл

[{ container: 'Images',
    name: '1559211341196.jpg',
    type: 'multipart/form-data',
    field: 'file',
    size: 3577522,
    providerResponse: undefined }]

из этого я хочу получить доступ к параметру 'name:',Я попробовал этот файл.имя, но я получаю вывод как ноль,

как я могу получить доступ к параметру имени и сохранить его в переменной?

Вот код:

{
    'use strict';
    module.exports = function (Picture) {
        Picture.afterRemote('upload', function (ctx, res, next) {
            var http = require('request');
            var file = res.result.files.file;
            console.log(file);
            console.log(JSON.stringify(file.container + file.name + file.size));
            var i = http.get('http://192.168.1.11:3000/api/Pictures/Images/files/1559211341196.jpg', { json: true }, (body) => {
            });
            console.log(i.uri.href);
            next();
        })
    };
}

1 Ответ

2 голосов
/ 30 мая 2019

Ваш ответ выглядит как массив объектов, поэтому вам придется получить его следующим образом:

var file = res.result.files.file[0]; или res.result.files[0], это зависит ...

Возможно, вы могли быесть несколько файлов, а не только один?в этом случае я бы рекомендовал вместо этого сопоставить их, что-то вроде ...

var files = res.result.files.reduce((l, i) => ({...l, [i.name]: i}),{})

Таким образом, вы можете получить карту файлов и получить к ним доступ с помощью files.file1, files['187263871623.jpg'] и т. д.

РЕДАКТИРОВАТЬ1: Я бы удалил, который требует ('http') из экспорта, это модуль, вы можете поделиться им между вызовами, и если у вас есть это внутри экспорта, он, вероятно, будет вызываться более одного раза.

...