0

我正在使用 jQuery UI 来允许用户移动 div。这将是事物的观点。现在用户将 div 移动到新的位置 (x,y)。我使用 jQuery 来获取 (x,y) 值。

如何将新的(id,x,y)值“传递”到我的节点服务器(控制器),以便服务器可以将其保存到 mongodb(模型)?

4

1 回答 1

1

似乎最直接的方法是在您的服务器上公开一个 API 来处理新值。

对于路由部分: 查看这篇文章,了解如何创建自己的路由系统。您也可以只使用ExpressConnect来设置路线(这是免费的优势)。有关在此处选择哪个路由器的更多信息:我应该使用哪个 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
        }
    });
于 2013-07-15T20:56:31.820 回答