我无法访问年和月变量中的值,因为它返回了一个对象。
getClassStatus () {
var year = (this.props.year).toString();
var month = (this.props.month).toString();
var day = this.props.day;
request
.get('example.com/getRosterCount')
.query({ year: {year} })
.query({ month: {month} })
.query({ day: {day} })
.query({ time: 10 })
.end((err, resp) => {
if (!err) {
switch (resp.text) {
case "6":
this.setState({ status: 'full' });
break;
case "closed":
this.setState({ status: 'closed' });
break;
case "booked":
this.setState({ status: 'booked' });
break;
default:
this.setState({ status: 'available' });
break;
}
}
});
}
我已经尝试像访问其他任何对象一样访问该值。
例如。
var year = (this.props.year).toString(); // {year: '2019'}
console.log(year.year); // undefined
但是它总是返回undefined
如何获取该值?
编辑: 这是服务器端代码
app.get('/getRosterCount', (req, res) => {
var year = req.query.year; // {year: '2019'}
var month = req.query.month; // {month: '5'}
var day = req.query.day;
var time = req.query.time;
console.log(year, month, day, time);
// Add padding to month and day if needed so they always have 2 digits
if (month.length == 1) {
month = "0"+month;
}
if (day.length == 1) {
day = "0"+day;
}
var dateString = year+'-'+month+'-'+day;
pool.getConnection(function (err, connection) {
if (err) throw err;
connection.query("SELECT _fkUserID FROM roster WHERE (date = ? AND time LIKE ?) OR (date = ? AND time = ?)",
[
dateString,
time+'%',
dateString,
time
],
function(error, rows, fields) {
if (error) {
console.log(error);
}
else {
console.log(rows);
console.log(rows.length);
res.set('Content-Type', 'text/plain');
res.send(rows.length.toString());
console.log(this.sql);
}
});
connection.release();
});
});
查询永远不会进行,因为它最终是这样的:
SELECT _fkUserID FROM roster WHERE (date = '[object Object]-[object Object]-[object Object]' AND time LIKE '10%') OR (date = '[object Object]-[object Object]-[object Object]' AND time = '10')
答案 0 :(得分:3)
如果调用toString()
,则无法访问该值,因为year
不再是对象。
// obj.toString() === '[object Object]'
尝试不使用toString()
。
答案 1 :(得分:0)
通过删除变量周围的括号来解决。
已更改
request
.get('example.com/getRosterCount')
.query({ year: {year} })
.query({ month: {month} })
.query({ day: {day} })
到
request
.get('example.com/getRosterCount')
.query({ year: year })
.query({ month: month })
.query({ day: day })
现在,我在URL中获得了实际值,而不是对象。