2016-06-01 2 views
0

구현하려는 json을 리턴하는이 간단한 요청을 받았습니다. 나는 익스프레스 웹 프레임 워크 REST API에 대한 튜토리얼을 따라,하지만 어떤 이유로 나는 같은 오류Express REST API 응답 메소드가 인식되지 않습니다.

오류가 계속 :

TypeError: res.status is not a function 

또는

TypeError: res.json is not a function 

하는 index.js :

var express = require('express'); 
    var router = express.Router(); 
    var pg = require('pg'); 
    var connectionString = 'pg://postgres:[email protected]/feed'; 

/* GET home page. */ 
router.get('/', function(req, res, next) { 
    res.render('index', { title: 'Express' }); 

}); 

router.get('/api/leaderboard', function(resp, req){ 
    var results = []; 
    pg.connect(connectionString, function(err, client, done){ 
     if(err){ 
     done(); 
     console.log(err); 
     return res.status(500).json({ success: false, data: err}); 
     } 
     var query = client.query("SELECT * FROM log WHERE (logged >= date_trunc('week', CURRENT_TIMESTAMP - interval '1 week') AND logged <= date_trunc('week', CURRENT_TIMESTAMP));"); 
     var counter = 0; 
     var b1 = {}; 
     var b2 = {}; 
     var b3 = {}; 
     var b4 = {}; 
     b1.energy_sum_week = 0; 
     b2.energy_sum_week = 0; 
     b3.energy_sum_week = 0; 
     b4.energy_sum_week = 0; 
     b1.zne_sum_week = 30000; 
     b2.zne_sum_week = 30000; 
     b3.zne_sum_week = 30000; 
     b4.zne_sum_week = 30000; 
     query.on('row', function(row){ 
      //results.push(row); 
        if(row['address'] == 215){ 
        b1.energy_sum_week = row['kitchen'] + row['plugload'] + row['lights'] + row['ev'] + row['hvac'] + row['instahot'] - row['solar']; 
        } 
        else if (row['address'] == 1590) { 
        b2.energy_sum_week = row['kitchen'] + row['plugload'] + row['lights'] + row['ev'] + row['hvac'] + row['instahot'] - row['solar']; 

        } else if (row['address'] == 1605) { 
        console.log(row); 
        b3.energy_sum_week = row['kitchen'] + row['plugload'] + row['lights'] + row['ev'] + row['hvac'] + row['instahot'] - row['solar']; 

        } else if (row['address'] == 1715) { 
        b4.energy_sum_week = row['kitchen'] + row['plugload'] + row['lights'] + row['ev'] + row['hvac'] + row['instahot'] - row['solar']; 
        } 

     }); 
     query.on('end', function(){ 
     done(); 
     //make zne lower than everything 
     results.push(b1); 
     results.push(b2); 
     results.push(b3); 
     results.push(b4); 
     resp.json(results); 

     }); 

    }); 

}); 


module.exports = router; 

응답 개체를 인식 할 수없는 것처럼 보입니다. 쿼리 콜백에 요청 및 응답을 전달하고 약속을 사용하는 것과 같은 여러 가지 시도를 시도했습니다. 여기 좀 필사적 얻기 다음 res 변수는 현재 컨텍스트에 존재하지 않는/

답변

4

, 당신은 아마 라인

router.get('/api/leaderboard', function(resp, req){ 

당신은 resp을 전달하는

router.get('/api/leaderboard', function(req, res){ 
+0

어이 나는 그것을 섞었다! 나는 그것을 어제 발견했다. 전에 잠을 자기 전에 게시해야합니다. 나는 담당자를 잃었습니다. '(하지만 고맙습니다. :) –

0

이 양식을 한 것으로 기대 req 개체이고 reqresp 개체입니다. 주문을 변경하십시오.

router.get('/api/leaderboard', function(req, resp){...} 
관련 문제