我已经开发了一个特定的REST服务,该服务给了我一个Array作为响应。 我需要在该数组中添加一个String项,并且使用了push()方法,但是通过这种方式,响应仅显示我的项总数,而不显示值。 这是我的代码
router.get('/tire_brand', VerifyToken, function(req,res){
TechInfo.find().distinct('Brand', (err, techinfos) => {
if (err) {
console.log(err);
return res.status(400).send({ status: 'ko', data: {msg: err.message }});
console.log(err);
}
res.status(200).send({status: 'ok', data: {msg: 'Brands tires available', tires :techinfos.push('Other')}});
});
});
关于如何解决此问题并显示数组值而不是length属性的任何帮助吗? 谢谢
答案 0 :(得分:2)
这是因为techinfos.push('Other')
返回了techinfos的长度(请看一下push方法here)。如果您按照以下方式操作:
router.get('/tire_brand', VerifyToken, function(req,res){
TechInfo.find().distinct('Brand', (err, techinfos) => {
if (err) {
console.log(err);
return res.status(400).send({ status: 'ko', data: {msg: err.message }});
console.log(err);
}
techinfos.push('Other'); // push an element here
res.status(200).send({
status: 'ok', data: {msg: 'Brands tires available', tires :techinfos}});
});
});
您将根据需要获得techinfos阵列。
答案 1 :(得分:-1)
push()方法将一个或多个元素添加到数组的末尾,然后 返回数组的新长度。
您可以执行此操作,并且应该可以:
// push the element first
techinfos.push('Other');
// and then send the response back
res.status(200).send({status: 'ok', data: {msg: 'Brands tires available', tires :techinfos}});