2017-04-24 7 views
0

나는 간단한 데이터베이스를 만들기위한 똑똑한 계약서를 썼다. API를오류 : 헤더를 보낸 후에 설정할 수 없습니다. 똑똑한 계약 함수를 호출하는 것으로부터 나온다

module.exports.creation=function(req,res){ 
var user_id = req.params.user_id || req.body.user_id; 
var currency = req.params.user_id || req.body.currency ; 
if(user_id == undefined || currency == undefined){ 
    res.status(500).json({status:false,errors:"Empty parameters"}); 
}else{ 
    isaccount().then(function(accountNumber){ 
    if(accountNumber!=null){ 
     var timestamp = Date.now(); 
     var result = contract.createUser.sendTransaction(user_id,currency,accountNumber,timestamp,{from:web3.eth.coinbase,gas:600000}); 
     var event = contract.CreatedUser(function(error, result) { 
       if (!error){ 
        if(result.args.userId!= undefined && result.args.accountId!= undefined && result.args.categoryId!= undefined){ 
          logger.info("user created with id :"+result); 
          res.status(200).json({status:true,data:{iduser:result.args.userId,accountId:result.args.accountId,created_at:timestamp}}); 
        }else{ 
         logger.info("user creation have problem :"); 
         res.status(500).json({status:false,errors:"no response"}); 
         } 
       }else{ 
        logger.error(error); 
        res.status(500).send(false); 
       } 
      }); 
    }else{ 
     logger.debug("Problem in accountNumber generation"); 
     res.status(500).send(false); 
    } 
     }); 
} 

에 대한

F:\project\blockchain\node_modules\solc\soljson.js:1 (function (exports, require, module, __filename, __dirname) { var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module .hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=type of process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(EN VIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write (x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath"normalize";var ret=nodeFS["readFileSync"](file

Error: Can't set headers after they are sent. at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:344:11) at ServerResponse.header (F:\project\blockchain\node_modules\express\lib\response.js:725:10) at ServerResponse.send (F:\project\blockchain\node_modules\express\lib\response.js:170:12) at ServerResponse.json (F:\project\blockchain\node_modules\express\lib\response.js:256:15) at F:\project\blockchain\BlockchainDB\users\userFunction.js:37:47 at F:\project\blockchain\node_modules\web3\lib\web3\filter.js:120:21 at Array.forEach (native) at F:\project\blockchain\node_modules\web3\lib\web3\filter.js:119:32 at Array.forEach (native) at Object.onMessage [as callback] (F:\project\blockchain\node_modules\web3\lib\web3\filter.js:117:22)

내 코드 - 내가 REST API를 처음 쳤을 때 그것은 나에게 정확한 출력을 제공하지만,에 더는 메시지와 함께 노드 서버 충돌을 명중, 여러 기능을 포함 }

이 문제를 사전에

감사를 해결하기 위해 저를 도와주세요

답변

0

모든 res.status() 통화에 대해 return 문을 사용해보십시오. 따라서 일단 응답 상태가 무언가로 설정 되더라도 res.status()가 다시 그 어딘가에 도착하게됩니다.