流星没有蒙戈

Elr*_*rot 14 mongodb meteor

使用0.6.5版本,可以使用meteor开发非Web应用程序.我从头开始为ARM处理器重建它,但我根本不需要DB支持.(Mongo是一个处理器杀手,占用空间很大,我根本不需要它)

ARM应该仅作为DDP客户端工作,考虑到这一点,我手动构建它而不使用mongo.

并尝试构建最简单的应用程序可能只在开始时包1(所有标准包已删除)

meteor
Run Code Online (Sandbox Code Playgroud)

和服务器文件夹中的一个文件

main = function(argv){
  return "DAEMON"
}

Meteor.setInterval(function(){
  console.log("HellOnWorld");
},1000);
Run Code Online (Sandbox Code Playgroud)

在完全流星安装的机器上它按预期工作但没有安装mongo我得到错误

Unexpected mongo exit code 127. Restarting.
Unexpected mongo exit code 127. Restarting.
Initializing mongo database... this may take a moment.
Unexpected mongo exit code 127. Restarting.
Can't start mongod
Run Code Online (Sandbox Code Playgroud)

显然我没有并且想要mongo.

有没有办法在不等mongo db的情况下启动流星?

Meteor团队计划支持其他数据库,因此必须迟早实施.

Aks*_*hat 20

UPDATE

对于较新版本的Meteor,您需要删除该mongo软件包.mongo包嵌入在meteor-platform包中.所以你需要删除它并添加所有其余的(来自https://github.com/meteor/meteor/tree/devel/packages/meteor-platform):

meteor remove meteor-platform
meteor add  meteor webapp logging tracker session ddp blaze spacebars templating check underscore jquery random ejson templating check underscore jquery random ejson
Run Code Online (Sandbox Code Playgroud)

然后你的应用程序将不再使用Mongo :).

在开发模式下,你可以通过将MONGO_URL环境变量设置为其他东西并启动流星来消除mongo .例如:MONGO_URL=mongodb://nowhere meteor


Dan*_*scu 9

事实证明,如果您在运行meteor之前设置任何MONGO_URL环境变量,它将无法启动其本地MongoDB!非常适合测试不依赖Mongo的软件包.

之前:

$ meteor test-packages ./
Testing fortawesome:fontawesome-compat...
[[[[[ Tests ]]]]]

=> Started proxy.
=> Started MongoDB.
=> Started your app.

=> App running at: http://localhost:3000/
Run Code Online (Sandbox Code Playgroud)

$ MONGO_URL=mongodb://mysql.com meteor test-packages ./  # haha
Testing fortawesome:fontawesome-compat...
[[[[[ Tests ]]]]]

=> Started proxy.
=> Started your app.

=> App running at: http://localhost:3000/
Run Code Online (Sandbox Code Playgroud)

看马,没有蒙哥!

我已确认没有启动mongo进程,也没有.meteor/local/db创建任何文件夹.


Jos*_*ner 7

在Meteor 0.6.5中,您可以使用Meteor包嵌入TingoDb(MongoDB API的Node.js实现):

1)转到programs/server捆绑包中的目录,然后npm install tingodb将TingoDb添加到捆绑包中.

2)在programs/server/packages/mongo-livedata.js所有其他Npm.require语句的顶部附近添加以下行

var Db = Npm.require('tingodb')().Db;
Run Code Online (Sandbox Code Playgroud)

3)在同一个文件(programs/server/packages/mongo-livedata.js)中替换以下代码块

MongoDB.connect(url, options, function(err, db) {
  if (err)
    throw err;
  self.db = db;

  Fiber(function () {
    // drain queue of pending callbacks
    _.each(self._connectCallbacks, function (c) {
      c(db);
    });
  }).run();
});
Run Code Online (Sandbox Code Playgroud)

使用此代码:

var db = new Db('path/to/your/db/directory', {});
self.db = db;
Fiber(function () {
  _.each(self._connectCallbacks, function (c) {
      c(db);
    });
}).run(); 
Run Code Online (Sandbox Code Playgroud)

path/to/your/db/directory可以在任何地方,但相对于programs/server组合中的默认目录.

4)要运行Meteor捆绑包,它希望您导出一个名为的环境变量MONGO_URL.您可以深入了解代码并删除对此的检查,但由于它从未使用过,您可以轻松导出伪造的内容MONGO_URL,例如捆绑包README文件中的伪造内容:

export MONGO_URL='mongodb://user:password@host:port/databasename'
Run Code Online (Sandbox Code Playgroud)

5)从bundle的基本目录运行node main.js.

警告:显然你在这里乱搞 Meteor内部,这几乎肯定会打破未来的版本.


sda*_*day 5

流星1.2.1 - 刚刚设置

MONGO_URL=none
Run Code Online (Sandbox Code Playgroud)

对于环境变量.(none不是关键字,任何无效的东西都会阻止mongo启动)