Json 无法识别快速REST API响应方法
我有一个非常简单的get请求,它返回我试图实现的json。我已经学习了Express Web Framework REST API的教程,但由于某些原因,我一直遇到相同的错误 错误:Json 无法识别快速REST API响应方法,json,node.js,api,rest,express,Json,Node.js,Api,Rest,Express,我有一个非常简单的get请求,它返回我试图实现的json。我已经学习了Express Web Framework REST API的教程,但由于某些原因,我一直遇到相同的错误 错误: TypeError: res.status is not a function 或 index.js: var express = require('express'); var router = express.Router(); var pg = require('pg'); var
TypeError: res.status is not a function
或
index.js:
var express = require('express');
var router = express.Router();
var pg = require('pg');
var connectionString = 'pg://postgres:postgres@postgres/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变量在当前上下文中不存在,您可能希望
router.get('/api/leaderboard', function(resp, req){
我有这个表格
router.get('/api/leaderboard', function(req, res){
res变量在当前上下文中不存在,您可能希望
router.get('/api/leaderboard', function(resp, req){
我有这个表格
router.get('/api/leaderboard', function(req, res){
您将resp作为req对象传递,将req作为resp对象传递。
试着改变一下顺序
router.get('/api/leaderboard', function(req, resp){...}
您将resp作为req对象传递,将req作为resp对象传递。
试着改变一下顺序
router.get('/api/leaderboard', function(req, resp){...}
是的,我搞混了!我昨天找到的。应该在睡觉前发布的消息现在我失去了代表:'。但非常感谢您:也要小心意外地进行覆盖。我的问题是,我使用的是基于axios promise的请求,以及何时执行thenres=>{…它会覆盖express route中的原始res对象。我真傻。是的,我弄错了!我昨天找到了它。应该在睡觉前发布,现在我失去了rep:'。但是非常感谢:也要小心意外地进行覆盖。我的问题是,我使用的是基于axios承诺的请求,以及何时执行thenres=>{…它会覆盖快速路线中的原始res对象。我真傻。