Express res.json()在尝试显示数据时不起作用
我正在使用Nodejs、express和postgresql创建restapi。这是我第一次这样做,所以我为此事道歉。我刚刚对此进行了测试,似乎要从本地数据库获取信息,但当我尝试使用res.json发送数据时,什么都没有显示。这是我到目前为止的代码Express res.json()在尝试显示数据时不起作用,express,Express,我正在使用Nodejs、express和postgresql创建restapi。这是我第一次这样做,所以我为此事道歉。我刚刚对此进行了测试,似乎要从本地数据库获取信息,但当我尝试使用res.json发送数据时,什么都没有显示。这是我到目前为止的代码 var express = require('express'); var client = new pg.Client({user: 'xxx', password: 'xxx', database: 'xxx', host: 'xxx'});
var express = require('express');
var client = new pg.Client({user: 'xxx', password: 'xxx', database: 'xxx', host: 'xxx'});
var app = express();
app.get('/test1', function(req,res){
var name;
client.connect(function(err){
if(err){
return console.error('could not connect to postgres', err);
}
client.query("select classname from class", function(err, result){
if(err){
return console.error('error running query', err);
}
name = result.rows[0].classname;
console.log(name);
client.end();
});
});
res.send(name);
});
我使用了控制台日志,它打印出了我需要的内容,但由于一些奇怪的原因,它不会发送。谢谢你的帮助!此外,如果你看到其他错误,不要害怕说出来。谢谢 这是一个异步函数,因此它将如下所示:
var express = require('express');
var client = new pg.Client({
user: 'xxx',
password: 'xxx',
database: 'xxx',
host: 'xxx'
});
var app = express();
app.get('/test1', function(req, res) {
var name;
client.connect(function(err) {
if (err) {
return console.error('could not connect to postgres', err);
}
client.query("select classname from class", function(err, result) {
if (err) {
return console.error('error running query', err);
}
name = result.rows[0].classname;
console.log(name);
client.end();
res.send(name);
});
});
});
代码中发生的情况是,在执行查询之前发送。您可以在控制台上看到它,因为您的日志语句在查询后正确执行
此外,您还应该注意您的错误-因此,不要返回res.send或res.json,而是执行另一个带有错误消息的res.send或res.json。非常感谢@亚述