如何使用 JQuery 将对象数据传递到节点服务器并保存到 mongodb?
Posted
技术标签:
【中文标题】如何使用 JQuery 将对象数据传递到节点服务器并保存到 mongodb?【英文标题】:How to use JQuery to pass object data to node server and save to mongodb? 【发布时间】:2013-07-13 19:47:16 【问题描述】:我正在使用 jQuery UI 来允许用户移动 div。这将是事物的观点。 现在用户将 div 移动到新的位置 (x,y)。我使用 jQuery 来获取 (x,y) 值。
如何将新的 (id,x,y) 值“传递”到我的节点服务器(控制器),以便服务器可以将其保存到 mongodb(模型)?
【问题讨论】:
【参考方案1】:似乎最直接的方法是在您的服务器上公开一个 API 来处理新值。
对于路由部分: 查看此article,了解如何创建自己的路由系统。您也可以只使用Express 或Connect 来设置路线(这是免费的优势)。在此处选择路由器的更多信息:Which Node.js Router Should I Use?
用于保存在数据库中
假设您决定使用 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
);
【讨论】:
以上是关于如何使用 JQuery 将对象数据传递到节点服务器并保存到 mongodb?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 JSON 对象内的 JSON 数组传递给 jQuery 自动完成
如何使用 ajaxFileUpload jQuery 插件传递数据