如何仅在服务器端构建MeteorJs应用程序?

如何仅在服务器端构建MeteorJs应用程序?,meteor,Meteor,当meteor在0.5.x中时,我正在重构一个应用程序构建 我需要扩展应用程序,因此我现在将有不同的应用程序能够在不同的核心上运行。其中一个将专用于web应用程序,但其他的仅用于服务器。对于这种情况,我不希望Meteor提供任何服务,它不能是http服务器 我尝试以不同的方式配置包列表(file.meteor/packages: # standard package of meteor-platform in server app only application-configuration a

当meteor在0.5.x中时,我正在重构一个应用程序构建 我需要扩展应用程序,因此我现在将有不同的应用程序能够在不同的核心上运行。其中一个将专用于web应用程序,但其他的仅用于服务器。对于这种情况,我不希望Meteor提供任何服务,它不能是http服务器

我尝试以不同的方式配置包列表(file.meteor/packages:

# standard package of meteor-platform in server app only
application-configuration
autoupdate
base64
binary-heap
callback-hook
check
ddp
deps
ejson
follower-livedata
geojson-utils
id-map
json
logging
meteor
mongo
observe-sequence
ordered-dict
random
retry
routepolicy

# standard package of meteor-platform in client app
#blaze
#blaze-tools
#boilerplate-generator
#html-tools
#htmljs
#jquery
#minifiers
#minimongo
#reactive-var
#spacebars
#spacebars-compiler
#templating
#tracker
#ui
#webapp
#webapp-hashing

# specific app package
但当我奔跑时#>流星 然后它告诉我服务器正在侦听,因此无法工作

我还试图删除“浏览器平台”:

但它告诉我,它不能删除这个版本的meteor平台


我错在哪里?对于纯服务器应用程序,包列表不是正确的吗?

Meteor依赖DDP包侦听传入请求,DDP侦听WebSocket,基本上是http

因此,它必须在某个端口上监听某些内容。如果它不监听,你就不能告诉应用程序做任何事情或要求它做任何事情。那么,它有什么用呢

但如果你不想让你的应用程序在它绑定的端口的TEM中干扰你的其他应用程序,那么在你启动它时给它一个自定义端口

$ meteor run --port 12345

目前不可能,“可能在未来的版本中”

请进一步解释“它不能是http服务器”的含义。Meteor作为一个web框架,本质上就是http。你说的话听起来像是在问“我怎么能让apache不是http?”你仍然希望你的Meteor应用程序能够接受DDP连接?或者只访问数据库?NodeJs是一种可以构建web应用程序/命令应用程序/的语言。Meteor依赖于Node,因此我希望构建一个不提供http响应的应用程序。假设我想监视服务器上的一个文件夹,读取文件内容并将其存储在中MongoDB。我不需要Http服务器。我使用MeteorJs是因为我喜欢它的API,它允许我轻松地做很多事情。所以在我的情况下,我不需要DDP,只需要Mongo收集一些其他东西。Meteor依赖于NodeJS和MongoDB(实际上),DDP只是框架的一个组件,但您不必使用它,因为框架中的许多包都不依赖DDP:Collection on Server just spy opLog(或polling)例如…因此,应该可以在没有Http服务器的情况下启动MeteorJS(就像NodeJs一样)理论上,你是对的。但是有些包如果被省略,会使整个Meteor变得毫无用处。以
下划线
为例,你根本无法删除它,尽管它与任何其他包一样。DDP是让其他系统与Meteor通信的工具。如果没有任何东西可以与Meteor通信,那么它就会变得自包含,有些事情ng喜欢
cron
。因此,我完全不同意你的评论。DDP是一个核心软件包,应该也不能删除。啊,我刚刚在你的原始帖子中读到你的其他评论。嗯……有趣的想法,但我不推荐。Meteor擅长在任何地方收集反应性数据,实时模板制作等,用于观看文件冲突等任务帐篷和在mongodb中插入数据,节点会容易得多。Meteor似乎没有提供太多的价值。除非你能提供关于你得到的任务的更具体的参数。所以我可以想象两个过程:从一个文件夹中查找文件,在这种情况下,纯节点就足够了。但如果我做相反的事情:观察添加它em在收集和编写文件、发送邮件、为添加的每个文档调用web服务,在这种情况下,Meteor提供了我所需要的一切,http服务器是无用的(希望有助于理解)。这更有意义,是的。但是,仍然有许多基于节点的轻量级替代方案。甚至是纯基于mongo的()存在从mongo中获取流、附加事件处理程序、编写文件、发出http请求等替代方案。是的,meteor确实可以完成所有这些事情,而且相当容易,但老实说,它并不擅长于这些。但是,是的,你可以用任何东西来完成任何事情。通过推论,一个伟大的web应用程序可以用纯汇编编写,但我们没有做到这一点。我们也不会从meteor拿走ddp:)
$ meteor run --port 12345