变得不确定

Getting Undefined

我正在研究 LoopBack 和 Angular 项目。 我有 JSON 对象,但在访问 JSON 对象时输出为 null。

我像这样存储对象 var file = res.result.files.file; 其中 res 有 JSON 对象 并像这样访问对象 var 文件名 = file.name; 返回未定义,

如何从 JSON 对象中获取名称 这是文件的输出

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

形成这个我想访问 'name:' 参数,我试过这个文件。名称,但我得到的输出为 null,

如何访问名称参数并将其存储在变量中?

代码如下:

{
    '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();
        })
    };
}

您的响应看起来像一个对象数组,因此您必须像这样获取它:

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'] 等访问它们

EDIT1:我会把 require('http') 移出导出,它是一个模块,你可以在调用之间共享它,如果你在导出中有它,它可能会被调用更多不止一次。