我正在研究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();
})
};
}
答案 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>