变得不确定

时间:2019-05-30 12:18:40

标签: node.js loopbackjs

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

我像这样存储对象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 }]

为此,我要访问“名称:”参数,因此我尝试了此文件。名称,但我得到的输出为null,

如何访问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 个答案:

答案 0 :(得分:1)

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

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')移出了导出,它是一个模块,可以在调用之间共享它,如果在导出中包含它,它可能会被调用多次。 / p>