我正在使用 jQuery UI 来允许用户移动 div。这将是事物的观点。现在用户将 div 移动到新的位置 (x,y)。我使用 jQuery 来获取 (x,y) 值。
如何将新的(id,x,y)值“传递”到我的节点服务器(控制器),以便服务器可以将其保存到 mongodb(模型)?
似乎最直接的方法是在您的服务器上公开一个 API 来处理新值。
对于路由部分: 查看这篇文章,了解如何创建自己的路由系统。您也可以只使用Express或Connect来设置路线(这是免费的优势)。有关在此处选择哪个路由器的更多信息:我应该使用哪个 Node.js 路由器?
为了保存在数据库中
假设您决定使用 Express,并且您的 API 是 : /user/:userId/view/:viewId/position
,那么您可以执行以下操作:
var mongoose = require('mongoose');
var View = new Schema({
id: String,
x: Number,
y: Number
});
mongoose.model("View", View);
并且,在您的路由器处理程序中:
exports.post("/user/:userId/view/:viewId/position", function (req, res) {
//Find user with userId in db
//...
//Find view with viewId in db
var view = req.params.viewId;
View.findOne({id:view}, function(err, result){
if(err || !result){
console.log("cannot find view "+view);
res.end();
}
else {
//update value of x and y
var x = req.body.x;
var y = req.body.y;
//...
}
});
发送数据 最后,在客户端,使用 jQuery 发出 POST 请求:
$.ajax({
type: "POST",
url: window.location.href+"/view/"+viewId+"position",
data: {
x: 200,
y: 150
},
success: function(d) {
//Position saved
},
error: function(jqXHR, textStatus, errorThrown) {
//Something bad happened
}
});