我正在尝试发送POST请求(使用邮递员)在PostgreSQL数据库中创建一个条目。但是,目前我的POST请求正在返回[object,Object],我无法找出原因。
以下是处理请求的代码。
//enable the router
app.use('/', router);
//Create
router.post('/api/v1/todos', (req, res, next) => {
const results = [];
console.log("Congrats you hit the create function!!");
//grab data from http-request, 'complete' is from a boolean value in the database
const data = {text: req.query.text, complete: false };
//give error if not recieving a request
if(!req.query.text) res.send(400, "The Request data is: " + req.query);
//get a prostgres client from the connection pool
pg.connect(connectionString, (err, client, done) => {
//handle connection errors
if (err) {
done();
console.log(err);
return res.status(500).json({success: false, data: err});
}
//SQL Query -> Insert Data
client.query('INSERT INTO items(text, complete) values($1,$2)',
[data.text, data.complete]);
//SQL Query -> Select Data
const query = client.query("SELECT * FROM items ORDER BY id ASC");
//Stream results back one row at a time
query.on('row', (row) => {
results.push(row);
});
//After all data is returned, close connection and return the results
query.on('end', () => {
done();
return res.json(results);
//return res.json(data);
});
});
});
为什么我的数据会返回对象?我该怎么做才能解决这个问题?
答案 0 :(得分:2)
您将字符串与对象连接,这会将对象转换为[object Object]
形式的字符串。
这是您的问题:if(!req.query.text) res.send(400, "The Request data is: " + req.query);
req.query
是一个对象(您只是检查文本属性是否存在)并且您将字符串连接到该对象。