Meteor有一个Session,它在客户端上提供一个全局对象,可用于存储任意一组键值对.用它来存储列表中当前所选项目之类的内容.
它支持Session.set,Session.get和Session.equals.
如何删除会话名称,值对?我找不到Session.delete(名字)?
我试图在流星应用程序中的底层mongodb上创建一个两列唯一索引并遇到麻烦.我在流星文档中找不到任何内容.我试过Chrome控制台.我从学期开始尝试,甚至试图将mongod指向/ db/dir里面的.meteor.我试过了
Collection.ensureIndex({first_id: 1, another_id: 1}, {unique: true});
变化.
我希望能够防止meteor app mongo集合上的重复条目.
想知道是否有人想出这个?
我回答了自己的问题,这是一个菜鸟.
我想到了.
启动流星服务器
打开第二个终端并输入 meteor mongo
然后创建你的索引...例如我为thumbsup和thumbsdown类型系统的记录做了这些.
db.thumbsup.ensureIndex({item_id: 1, user_id: 1}, {unique: true})
db.thumbsdown.ensureIndex({item_id: 1, user_id: 1}, {unique: true})
Run Code Online (Sandbox Code Playgroud)
现在,只需要找出一个引导安装设置,在设置为推送而不是手动时创建这些设置.
我有一个应用程序,它使用可通过的节点twit模块
npm install twit
Run Code Online (Sandbox Code Playgroud)
我从.meteor/local/build/server /本地部署了节点模块
因此,它在.meteor/local/build/server/node_modules/twit中可见
我尝试在项目根目录下安装它,但项目没有找到模块.这使我得到了上述有效的解决方案.
我的应用程序现在运行正常.我可以运行并做所有事情,并可以从我的Meteor服务器端或客户端与Twitter进行交互,具体取决于我想要做什么.没有崩溃.
当我通过命令部署到meteor.com时
meteor deploy [appname] --password
Run Code Online (Sandbox Code Playgroud)
应用程序成功部署.
当我尝试从浏览器访问(anonistream.meteor.com上的应用程序)[anonistream.meteor.com]时,它失败并且日志包含此错误.
[Mon May 07 2012 01:59:53 GMT+0000 (UTC)] WARNING
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'twit'
at Function._resolveFilename (module.js:332:11)
at Function._load (module.js:279:25)
at Module.require (module.js:354:17)
at require (module.js:370:17)
at app/server/server.js:2:12
at /meteor/containers/84162a7c-24e8-bf26-6fd8-e4ec13b2a935/bundle/server/server.js:111:21
at Array.forEach (native)
at Function.<anonymous>
(/meteor/containers/84162a7c-24e8-bf26-6fd8- e4ec13b2a935/bundle/server/underscore.js:76:11)
at /meteor/containers/84162a7c-24e8-bf26-6fd8-e4ec13b2a935/bundle/server/server.js:97:7
[Mon May 07 2012 01:59:53 GMT+0000 (UTC)] INFO STATUS running -> waiting
[Mon …
Run Code Online (Sandbox Code Playgroud) 我可以在底层的.meteor/local/build/server/node_modules中使用像winston npm这样的东西吗?
甚至是node-loggly
在新的Meteor auth分支中,如何创建用户服务器端?
我看到如何通过调用来创建客户端
[Client] Meteor.createUser(options, extra, callback)
Run Code Online (Sandbox Code Playgroud)
但是假设我想在启动时创建一个Meteor用户集合记录?
例如,启动/引导应用程序期间的管理员帐户?
谢谢Steeve
我跟着github meteorirc项目的主角并将它们放入/ public /
我从内部/ public /通过npm安装了我的节点模块,因此我有一个/ public/node_modules /目录.
我不认为这是他们的'正确'或'标准'的地方,因为根据Meteor文档......
Meteor收集所有JavaScript文件,不包括客户端和公共子目录下的任何内容,并将它们加载到光纤内的Node.js服务器实例中
要加载的代码位于服务器目录和服务器js文件中,看起来像这样.
var require = __meteor_bootstrap__.require;
var path = require("path");
var fs = require('fs');
var base = path.resolve('.');
if (base == '/'){
base = path.dirname(global.require.main.filename);
}
var Twit;
var twitPath = 'node_modules/twit';
var publicTwitPath = path.resolve(base+'/public/'+twitPath);
var staticTwitPath = path.resolve(base+'/static/'+twitPath);
if (path.existsSync(publicTwitPath)){
Twit = require(publicTwitPath);
}
else if (path.existsSync(staticTwitPath)){
Twit = require(staticTwitPath);
}
else{
console.log('WARNING Twit not loaded. Node_modules not found');
}
Run Code Online (Sandbox Code Playgroud)
根据文档,这不是标准的,我不相信我应该这样做.然而,它在我的开发平台和部署meteor.com的生产中都有效.
在项目的目录结构中应该安装节点模块,以便它们在本地工作,并在meteor.com或其他地方部署?
我可能在文档中遗漏了一些非常明显或遗漏的东西.我搜索过,没有找到类似的问题.张贴它.
这两个
return Items.find({},{sort: {time: -1}, limit: 10});
Run Code Online (Sandbox Code Playgroud)
要么
return Items.find({},{sort: {time: -1}).limit(10);
Run Code Online (Sandbox Code Playgroud)
造成 meteor cannot observe queries with skip or limit
根据Meteor文档....
collection.insert(doc, [callback])
回调函数
可选的.如果存在,则使用错误对象作为第一个参数并将_id作为第二个参数调用.
......然后......
在服务器上,如果您不提供回调,则插入块直到数据库确认写入,或者如果出现错误则抛出异常.如果确实提供了回调,则立即返回.插件完成(或失败)后,将使用错误和结果参数调用回调,与方法相同.
它是什么,错误和_id或错误和结果?我确实有Meteor.methods正确触发它们的回调错误,结果可用于范围.
我只是无法使回调在collection.insert(doc,[callback])上正常工作
无论哪种方式,我无法让我的回调注册任何东西?
function insertPost(args) {
this.unblock;
if(args) {
post_text = args.text.slice(0,140);
var ts = Date.now();
Posts.insert({
post: post_text,
created: ts
}, function(error, _id){
// or try function(error, result) and still get nothing
// console.log('result: ' + result);
console.log('error: ' + error);
console.log('_id: ' + _id); //this._id doesn't work either
});
}
return;
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我从早上2点开始编码...下午6点我的时区...我很模糊,所以我可能(可能)遗漏了一些非常明显的东西.
干杯斯蒂夫
如何在Meteor应用程序的Mongo查询中使用变量作为字段名称.
这是一个例子......
这会在大写子集的父ID的集合名称后,在我的请求控制器集合上运行查找.孩子是用户字段.
window[Meteor.request.controller.capitalise()]["find"]({ _id: Session.get('parent_id'), users: params.child }).count()
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我的控制器是集合项的变量名,它允许我有一行代码来查找控制器/集合的子代,但我需要能够将子字段名设置为变量.在上面的例子中,这将是用户,但我希望它是一个变量名.
我试过这个,但它不起作用.
window[Meteor.request.controller.capitalise()]["find"]({ _id: Session.get('parent_id'), [Session.get('child_collection_name').decapitalise()]: params.child }).count()
Run Code Online (Sandbox Code Playgroud)
哪里
Session.get('child_collection_name').decapitalise()
Run Code Online (Sandbox Code Playgroud)
返回用户
有任何想法吗?如果我能弄清楚如何在meteor中使用mongo查询中的变量名,那么它将大大减少我的代码占用空间.