【发布时间】:2019-05-08 15:56:19
【问题描述】:
我正在尝试将新用户添加到 Mongo 数据库,包括他们的位置作为 GeoJSON 对象。我正在使用这个包为用户模式预定义一个点对象:https://www.npmjs.com/package/mongoose-geojson-schema
具体来说,架构如下所示:
UserSchema = mongoose.Schema(
{
first_name:String,
last_name:String,
username:String,
avatar:String, //string to image location in server / public
current_user_location: mongoose.Schema.Types.Point
},
{ collection: 'users' });
var User = mongoose.model('User', UserSchema);
那么我的路线是这样的:
var express = require('express');
var router = express.Router();
var User = require('../models/user');
router.post('/addUser', function (req, res) {
var data = req.body;
new User({
first_name:data.first_name,
last_name:data.last_name,
username:data.user_name,
avatar:data.avatar_link, //string to image location in server / public
current_user_location: {
type: "Point",
coordinates: [data.longitude, data.latitude] //[12.123456, 13.134578]
}
}).save(function (err) {
if (err) {
console.log(err);
}
} else {
console.log("done");
}
});
然后,当我使用 Postman 发送请求正文时,它会返回错误
值“{类型:'点',坐标: ['12.123456', '13.134578' ] }" 在路径“current_user_location”
这是请求正文的图片: Postman addUser Request Body
但是当我将路线中的“坐标”值更改为静态坐标(后面的注释,[12.123456, 13.134578])并使用 Postman 测试路线时,我得到了 OK 和新的用户已添加到数据库中。
向请求主体内的 GeoJSON 对象添加变量值是否缺少什么?
【问题讨论】:
标签: node.js mongodb mongoose geojson mongoose-schema