我具有以下架构来存储坐标:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// Create Schema
const LocationSchema = new Schema({
// Matches
loc: {
type:
{
type: String
},
coordinates: [Number]
},
member_id: {
type: String
}
});
LocationSchema.index({ loc: '2dsphere' });
mongoose.model('locations', LocationSchema);
我还创建了一条获取路线,以到达要显示此存储的坐标数据的页面。当我点击路由时,会在console.log中得到以下内容,用于调试:
{ loc: { coordinates: [ 74.360106, 31.497754 ], type: 'Point' },
_id: 5b5abd4bdcbd0f4e5c70b799,
member_id: 'HyQUa4_N7',
__v: 0 }
这对我来说很好,因为我正在获取坐标和成员ID。以下是我的获取路线的代码,通过该代码我将数据传递到我的快速车把视图:
// Manage Location
router.get('/userlocation/:member_id', ensureAuthenticated, (req, res) => {
Location.findOne({ member_id: req.params.member_id })
.then(locations => {
console.log(locations);
res.render('users/userlocation', { locations: locations });
})
.catch(error => {
console.log('could not find user location');
});
});
我对如何在HTML / View中显示此数据感到困惑。通常我使用{{variable name}}来显示正在传递到视图中的数据。我应该使用哪种格式。我尝试使用{{locations.coordinates [0]}},但这给我一个错误。
请帮助。这是我第一次在Node中尝试这样的事情。
答案 0 :(得分:0)
您可以像这样访问经度:
{{locations.loc.coordinates[0]}}
我建议您应该这样定义模式:
位置:{type:[Number],索引:“ 2d”},// [,]