将数据发布到 Meteor 的 MongoDB 集合
Posted
技术标签:
【中文标题】将数据发布到 Meteor 的 MongoDB 集合【英文标题】:Posting data to Meteor's MongoDB collection 【发布时间】:2016-09-12 21:05:12 【问题描述】:的最佳方式是什么? 我最初尝试使用 Postman chrome 扩展、命令行工具(如 curl),但没有找到任何运气。
我使用的 curl 命令是:
curl -i -X POST -H "Content-Type: application/json" -d '"hacker":"fromcurl","score":100' http://localhost:3000/players
输出:
HTTP/1.1 200 OK
vary: Accept-Encoding
content-type: text/html; charset=utf-8
date: Tue, 17 May 2016 00:37:44 GMT
connection: keep-alive
transfer-encoding: chunked
<!DOCTYPE html>
<html>
PS : player 是集合/表名
【问题讨论】:
***.com/a/16495135 @pink612 您的应用程序是否需要有一个REST
接口,以便您可以从命令行执行此操作?如果没有,一般的答案是使用流星方法。
@DavidWeldon 感谢您的回复。我已将 simple:rest 包添加到我的流星应用程序中。仍然将数据发布到 mongo db 似乎不起作用。
【参考方案1】:
看一下 DDP,Meteor 使用这个协议在客户端和服务器之间进行通信。 DDP 很简单并且基于 JSON。 Meteor 的 DDP 目前基于 WebSockets 和 SockJS。这很有帮助。我有一个案例,Websocket 无法在本地 LAN 网络中工作,但连接回退到 SockJS,然后一切正常,太好了!
一个实现 Meteor 和 Python 之间 DDP 通信的示例。 只需创建一个 Meteor 方法:
Meteor.methods(
clientProcessData: function (data)
console.log(data);
// Meteor post data to MongoDB code here
,
按照https://github.com/hharnisc/python-meteor 的说明安装 python-meteor 客户端并连接到 Meteor 服务器。
您可以通过以下方式从 Python 调用 Meteor 方法:
client.call('clientProcessData', ["This is a test"], callback_function)
不确定是否有其他编程语言的其他 DDP 客户端,但就我而言,python 效果很好!
// 更新:有很多,但是我太新了,害怕发布外部链接,所以请在谷歌上做一个简单的“DDP客户端”搜索。
【讨论】:
以上是关于将数据发布到 Meteor 的 MongoDB 集合的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB / Meteor / 将 MONGO_URL 导出到已部署的应用程序
如何将 mongodb 客户端连接到本地 Meteor MongoDB