입니다. /test
에 POST하려면 node.js와 Postman을 사용하고 있습니다. 내가 toChange
으로 필드 결과를 저장하고정의되지 않은 선언 결과. 원래 객체 및 세트 변수의 값이
설정할 : toChange.transaction.signature = element.transaction.signature;
toChange
변수의 값은 element.transaction.signature
입니다. 그러나 toChange.transaction
또는 toChange.transaction.signature
을 정의하면 선언은 undefined
을 반환합니다. 왜 이런 일이 일어나는 걸까요? 어떻게 수정해야합니까? (server.js에서 사용 부)
:
logServer.post('/test', (req,res) => {
console.log('starting test');
let assetID = req.jwtPayload.assetID;
logDB.collection('logs').find({"transaction.assetID" : assetID}).toArray((err, result) => {
if(err){
console.log("Err : "+err.message);
db.close();
respondWithJSON(500,500,err.message,res);
return;
}
result.forEach(function(element, index, array) {
let toChange = result.filter(function(e){return e._id === element._id}); //**HERE
console.log('toChange', toChange);
console.log('element.transaction.signature', element.transaction.signature);
console.log('element.transactionSignature', element.transactionSignature);
console.log('toChange.transaction', toChange.transaction); //**HERE
//toChange.transaction.signature = element.transaction.signature; //**HERE
//console.log('toChange.transaction.signature', toChange.transaction.signature);
});
});
res.status(200).send('hello, I am Log test');
});
(CONSOLE.LOG 출력)가되도록해야
[stdout] starting test
[stdout] toChange [ { _id: 1511359949,
[stdout] transaction:
[stdout] { actor: 'patman',
[stdout] type: 'Upload',
[stdout] assetName: 'benten40.txt',
[stdout] assetOwner: 'patman',
[stdout] signature: 'c7ac2d40-c41c-4cd6-88ed-51c309114f40',
[stdout] timeStamp: '2017-11-22T14:12:29.000Z',
[stdout] result: 'Success' },
[stdout] transactionSignature: '632e61b5-a022-482c-a4c5-4940b53cb922' } ]
[stdout] element.transaction.signature c7ac2d40-c41c-4cd6-88ed-51c309114f40
[stdout] element.transactionSignature 632e61b5-a022-482c-a4c5-4940b53cb922
[stdout] toChange.transaction undefined