使用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
事实证明,如果您在运行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创建任何文件夹.
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内部,这几乎肯定会打破未来的版本.
流星1.2.1 - 刚刚设置
MONGO_URL=none
Run Code Online (Sandbox Code Playgroud)
对于环境变量.(none不是关键字,任何无效的东西都会阻止mongo启动)
| 归档时间: |
|
| 查看次数: |
9749 次 |
| 最近记录: |