Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meteor.users.helpers not defined #27

Open
JimHough opened this issue Mar 5, 2015 · 37 comments
Open

Meteor.users.helpers not defined #27

JimHough opened this issue Mar 5, 2015 · 37 comments
Labels

Comments

@JimHough
Copy link

JimHough commented Mar 5, 2015

Hi,

I'm trying to use this package to link to another document on the users collection.
Its throwing an error at the line 'Meteor.users.helpers({....});'
It does this on a freshly created meteor project version 1.0.3.2
Any ideas what it could be?

Thanks

@dburles
Copy link
Owner

dburles commented Mar 5, 2015

Hey @JimHough what's the error message you saw?

@ghost
Copy link

ghost commented Mar 6, 2015

Same problem here. I installed latest windows preview release from https://github.com/meteor/meteor/wiki/Preview-of-Meteor-on-Windows

When I start the app - I get this error:

W20150306-15:24:50.920(5.5)? (STDERR)
W20150306-15:24:50.922(5.5)? (STDERR) C:\Users\username\AppData\Local\.meteor\packages\meteor-tool\1.1.0-winr.12\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\fibers\future.js:245
W20150306-15:24:50.922(5.5)? (STDERR)                                           throw(ex);
W20150306-15:24:50.922(5.5)? (STDERR)                                                 ^
W20150306-15:24:50.922(5.5)? (STDERR) TypeError: Object [object Object] has no method 'helpers'
W20150306-15:24:50.922(5.5)? (STDERR)     at app\collections\users.js:3:14
W20150306-15:24:50.922(5.5)? (STDERR)     at app\collections\users.js:10:3
W20150306-15:24:50.923(5.5)? (STDERR)     at D:\code\apps\dummyapp\dummyapp\.meteor\local\build\programs\server\boot.js:222:10
W20150306-15:24:50.923(5.5)? (STDERR)     at Array.forEach (native)
W20150306-15:24:50.923(5.5)? (STDERR)     at Function._.each._.forEach (C:\Users\username\AppData\Local\.meteor\packages\meteor-tool\1.1.0-winr.12\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\underscore\underscore.js:79:11)
W20150306-15:24:50.923(5.5)? (STDERR)     at D:\code\apps\dummyapp\dummyapp\.meteor\local\build\programs\server\boot.js:117:5
W20150306-15:24:56.408(5.5)? (STDERR)
W20150306-15:24:56.409(5.5)? (STDERR) C:\Users\username\AppData\Local\.meteor\packages\meteor-tool\1.1.0-winr.12\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\fibers\future.js:245
W20150306-15:24:56.409(5.5)? (STDERR)                                           throw(ex);
W20150306-15:24:56.409(5.5)? (STDERR)                                                 ^
W20150306-15:24:56.409(5.5)? (STDERR) TypeError: Object [object Object] has no method 'helpers'
W20150306-15:24:56.409(5.5)? (STDERR)     at app\collections\users.js:3:14
W20150306-15:24:56.409(5.5)? (STDERR)     at app\collections\users.js:10:3
W20150306-15:24:56.409(5.5)? (STDERR)     at D:\code\apps\dummyapp\dummyapp\.meteor\local\build\programs\server\boot.js:222:10
W20150306-15:24:56.410(5.5)? (STDERR)     at Array.forEach (native)
W20150306-15:24:56.410(5.5)? (STDERR)     at Function._.each._.forEach (C:\Users\username\AppData\Local\.meteor\packages\meteor-tool\1.1.0-winr.12\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\underscore\underscore.js:79:11)
W20150306-15:24:56.410(5.5)? (STDERR)     at D:\code\apps\dummyapp\dummyapp\.meteor\local\build\programs\server\boot.js:117:5
=> Exited with code: 8
W20150306-15:25:01.627(5.5)? (STDERR)
W20150306-15:25:01.627(5.5)? (STDERR) C:\Users\username\AppData\Local\.meteor\packages\meteor-tool\1.1.0-winr.12\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\fibers\future.js:245
W20150306-15:25:01.628(5.5)? (STDERR)                                                 ^
W20150306-15:25:01.628(5.5)? (STDERR) TypeError: Object [object Object] has no method 'helpers'
W20150306-15:25:01.628(5.5)? (STDERR)     at app\collections\users.js:3:14
W20150306-15:25:01.629(5.5)? (STDERR)     at app\collections\users.js:10:3
W20150306-15:25:01.629(5.5)? (STDERR)     at D:\code\apps\dummyapp\dummyapp\.meteor\local\build\programs\server\boot.js:222:10
W20150306-15:25:01.629(5.5)? (STDERR)     at Array.forEach (native)
W20150306-15:25:01.629(5.5)? (STDERR)     at Function._.each._.forEach (C:\Users\username\AppData\Local\.meteor\packages\meteor-tool\1.1.0-winr.12\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\underscore\underscore.js:79:11)
W20150306-15:25:01.628(5.5)? (STDERR)                                           throw(ex);
W20150306-15:25:01.630(5.5)? (STDERR)     at D:\code\apps\dummyapp\dummyapp\.meteor\local\build\programs\server\boot.js:117:5
=> Exited with code: 8
=> Your application is crashing. Waiting for file change.

I wrote the following code in users.js

Meteor.users.helpers({ some code here });

@dburles
Copy link
Owner

dburles commented Mar 6, 2015

Does it work okay on other collections?

@ghost
Copy link

ghost commented Mar 6, 2015

Actually, I am using the package on users collections only. Let me check.

EDIT: Yes. the package is working on other collections. I think the problem is with users at the moment.

@dburles dburles added the bug label Mar 6, 2015
@levino
Copy link

levino commented Mar 7, 2015

I have the same when updating meteor. Actually had the issue for quite a time. It could have to do with the need to go from Meteor.collection to Mongo.collection but this is just an educated guess.

@dburles
Copy link
Owner

dburles commented Mar 8, 2015

I wonder if this current bug is windows specific, @JimHough are you running Meteor on windows by any chance?

@levino
Copy link

levino commented Mar 9, 2015

@dburles using Ubuntu 14.04. Not working on any of my three systems (all Ubuntu 14.04)

@JimHough
Copy link
Author

JimHough commented Mar 9, 2015

I am also running on Ubuntu 14.04. It seems as though the helpers prototype is not applied or is deleted from the users collection.

@levino
Copy link

levino commented Mar 18, 2015

@dburles Will you be able to work on this in the foreseeable future?

@levino
Copy link

levino commented Mar 18, 2015

I made the warning go away by doing:

var Users = Meteor.users;

Users.helpers({});

This was quite helpful: reactioncommerce/meteor-security#5

Can the others confirm that they are also using collection-behaviours?

@dburles
Copy link
Owner

dburles commented Mar 26, 2015

@JimHough tried this project today on Ubuntu 14.04 and couldn't reproduce your error, are you sure that the issue isn't caused by a package conflict like @levino ?

@AlexFrazer
Copy link

Having problems meself with this

@dburles
Copy link
Owner

dburles commented Apr 23, 2015

@AlexFrazer any further info you may have, such as system etc would be super useful thanks!

@AlexFrazer
Copy link

@dburles, I am sorry, it seemed this was a result of pub/sub. My solution was to put it in a null publication.

Meteor.publish(null, function () {
  return Meteor.users.find({
    _id: this.userId
  }, {
    fields: {
      services: false
    }
  });
}, { is_auto: true });

@dougserfass
Copy link

I am getting another error related to Meteor.users.helpers.
While the exception is generated by your code, the error is not caused by your code.
I inherited this project and am getting the error
Error: [Can't apply helpers to 'users' a transform function already exists!]
when I try to implement Meteor.users.helpers for
kaoskeya:admin
kaoskeya:accounts-autoform-admin
Have searched my app and cannot locate a duplicate of Meteor.users.helpers.
Any suggestions as to how to fix this problem?
Thanks.

@dougserfass
Copy link

meteor list
255kb:meteor-status 1.2.0* Meteor Status automatically alerts u...
3stack:presence 1.0.3 Track who' online on your app, and w...
accounts-base 1.2.0 A user account system
accounts-facebook 1.0.4 Login service for Facebook accounts
accounts-google 1.0.4 Login service for Google accounts
accounts-password 1.1.1 Password support for accounts
alanning:roles 1.2.13 Role-based authorization
aldeed:autoform 4.2.2* Easily create forms with automatic i...
aldeed:collection2 2.3.3 Automatic validation of insert and u...
aldeed:template-extension 3.4.3 Adds template features currently mis...
avatar 0.7.6+ Consolidated user avatar template (t...
base-model 0.1.3+ A model for all other models to inhe...
bootstrap-contextmenu 0.0.1+ A meter package wrapper to https://g...
canvas-roles 0.0.0+
cfs:graphicsmagick 0.0.18 Adds gm to scope with the ability...
circular-menu 0.0.0+
dburles:collection-helpers 1.0.3 Transform your collections with help...
dburles:jquery-tinysort 0.5.5 TinySort, a small and simple jQuery ...
dsyko:meteor-node-csv 0.3.7 node-csv npm packaged for meteor.
email 1.0.6 Send email messages
fds:keycodes 1.0.2 Names for event key codes
force-ssl 1.0.4 Require this application to use HTTPS
fortawesome:fontawesome 4.3.0 Font Awesome (official): 500+ scalab...
hammer:hammer 2.0.4_2 Hammer.js (official) - multi-touch...
html-parser 0.0.0+
html2canvas 0.0.0+
http 1.1.0 Make HTTP calls to remote servers
intercom-local 1.2.4+ Intercom.io basic integration (uses ...
iron:router 1.0.7* Routing specifically designed for Me...
jag:pince 0.0.6* A logger for Meteor inspired by log4...
jquery 1.11.3_2 Manipulate the DOM using CSS sele...
jstree 3.1.0+ Package wrapper for jstree plugin.
kaoskeya:accounts-autoform-admin 0.0.1 Manage users module for kaoskeya:adm...
kaoskeya:admin 0.2.5 Simple autoform based admin that int...
matb33:collection-hooks 0.7.13 Extends Mongo.Collection with befor...
matdutour:outdated-browser 0.1.1 Detects outdated browsers and advise...
meteor-platform 1.2.2 Include a standard set of Meteor pac...
meteorhacks:cluster 1.6.4* Clustering solution for Meteor with ...
meteorhacks:kadira 2.20.3* Performance Monitoring for Meteor
meteorhacks:kadira-profiler 1.1.0* CPU Profiler for Kadira
meteorhacks:npm 1.3.0 Use npm modules with your Meteor App
meteorhacks:zones 1.4.0* Zone.Js integration for meteor
mirageglobe:html5shivcdn 1.2.3 Latest version html5shiv loaded via ...
mizzao:jquery-ui 1.11.2 Simple lightweight pull-in for jQue...
momentjs:moment 2.10.3 Moment.js (official): parse, valida...
mrt:cron 0.0.1 Simple meteor.cron
npm-container 1.0.0+ Contains all your npm dependencies
ongoworks:security 1.1.0* Logical security for client-originat...
pascoual:pdfkit 1.0.5 PDFKit, the PDF generation library
pauli:accounts-linkedin 1.1.2 Accounts service for LinkedIn accounts
pfafman:multer 0.1.0 Add Multer to meteor
plotter 0.0.0+
redactor 10.0.5+ Redactor WYSIWYG html editor.
reywood:iron-router-ga 0.6.0 Google analytics (universal edition)...
s3-server 0.0.0+ Upload files to S3. Allows use of Kn...
sacha:spin 2.0.4* Simple spinner package for Meteor
selection-box 0.0.0+
selectionchange-polyfill 0.0.0+
sergeyt:livequery 1.3.7 Live Query utilizes the power of jQu...
server-time 0.1.0+ Package to compensate for client/ser...
service-configuration 1.0.4 Manage the configuration for third-p...
socialize:messaging 0.2.1+ A social messaging package LOCAL
tmeasday:html5-history-api 4.1.2 HTML5 History API expansion for brow...
twbs:bootstrap 3.3.4* The most popular front-end framework...
underscore 1.0.3 Collection of small helpers: _.map, ...
user-model 0.1.2+ A social user package
useraccounts:bootstrap 1.9.1* Accounts Templates styled for Twitte...
uzumaxy:prevent-backspace 0.0.1 Prevents the backspace from navigati...
voidale:better-emails 0.0.1+ Send Better Emails
voidale:bootstrap-alerts 0.3.5 Bootstrap styled alerts with halflings
voidale:bootstrap-dynamic-modal 0.0.1+ Simple shortcut of bootstrap 3 modals.
voidale:meteor-notification 0.0.2+ Adds notification functionality
voidale:minimap 0.0.1+ Wrapper for mgMiniMap Jquery minimap...
voidale:nano-scroller 0.8.6+ A wrapper for nano Custom Scrollbar.
voidale:offcanvas-chat 0.0.1+ Simple off canvas chat
voidale:stripe-subscriptions 0.0.1+ Complete package for Stripe Subscipt...
webshot 0.0.0+ Webshot - NPM Screenshot Library usi...
zimme:iron-router-active 1.0.4* Active route/path template helpers f...

@dburles
Copy link
Owner

dburles commented Jul 27, 2015

@dougserfass it appears as though another package has added a transform function to the Meteor.users collection.

@dougserfass
Copy link

as you can see from meteor list, i inherited a lot of added packages in this project
i am working with kaoskeya to try to identify the package with the transform function
do you know of any easy way to determine which package contains the transform function?

@harin
Copy link

harin commented Jul 29, 2015

I am getting the same error

W20150729-18:44:26.862(7)? (STDERR) /Users/username/.meteor/packages/meteor-tool/.1.1.3.hn2ytd++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:245
W20150729-18:44:26.862(7)? (STDERR)                         throw(ex);
W20150729-18:44:26.862(7)? (STDERR)                               ^
W20150729-18:44:26.867(7)? (STDERR) TypeError: Object [object Object] has no method 'helpers'
W20150729-18:44:26.867(7)? (STDERR)     at RouteController.extend.layoutTemplate (packages/me:post/collections/news.js:2:1)
W20150729-18:44:26.867(7)? (STDERR)     at /Users/username/Documents/lab/project1/myapp/meteor/.meteor/local/build/programs/server/packages/me_post.js:161:4
W20150729-18:44:26.867(7)? (STDERR)     at /Users/username/Documents/lab/project1/myapp/meteor/.meteor/local/build/programs/server/packages/me_post.js:222:3
W20150729-18:44:26.867(7)? (STDERR)     at /Users/username/Documents/lab/project1/myapp/meteor/.meteor/local/build/programs/server/boot.js:222:10
W20150729-18:44:26.867(7)? (STDERR)     at Array.forEach (native)
W20150729-18:44:26.867(7)? (STDERR)     at Function._.each._.forEach (/Users/username/.meteor/packages/meteor-tool/.1.1.3.hn2ytd++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11)
W20150729-18:44:26.867(7)? (STDERR)     at /Users/username/Documents/lab/project1/myapp/meteor/.meteor/local/build/programs/server/boot.js:117:5

Here is my usage, even if I comment out my implementation and leave only the News.helper I still get an error.

News = new Mongo.Collection('news');
News.helpers({
    imageUrl: function() {
        var image = Images.find(this.image_id);
        return image.url({store:'images'});
    },
    thumbnailUrl: function() {
        var image = Images.find(this.image_id);
        return image.url({store:'thumbs'});
    }
});

Here is my package list, I saw in another issue that collectionFS might not work with this package?

accounts-password           1.1.1  Password support for accounts
accounts-ui                 1.1.5  Simple templates to add login widgets to...
aldeed:autoform             5.3.2  Easily create forms with automatic inser...
aldeed:collection2          2.3.3  Automatic validation of insert and updat...
cfs:ejson-file              0.1.4  CollectionFS, FS.File as EJSON type
cfs:filesystem              0.1.2  Filesystem storage adapter for CollectionFS
cfs:graphicsmagick          0.0.18  Adds `gm` to scope with the ability to ...
cfs:standard-packages       0.5.9  Filesystem for Meteor, collectionFS
dburles:collection-helpers  0.1.6* Collection helpers
fortawesome:fontawesome     4.3.0  Font Awesome (official): 500+ scalable v...
iron:router                 1.0.9  Routing specifically designed for Meteor
jquery                      1.11.3_2  Manipulate the DOM using CSS selectors
less                        1.0.14  The dynamic stylesheet language
meteor-platform             1.2.2  Include a standard set of Meteor package...
sacha:spin                  2.3.1  Simple spinner package for Meteor
underscore                  1.0.3  Collection of small helpers: _.map, _.ea...
zcurtis:uikit               2.21.2  UIKit repackaged for Meteor (from fork)

@dburles
Copy link
Owner

dburles commented Jul 29, 2015

Hey @harinsa somehow your project is using a very old version of collection-helpers.

@harin
Copy link

harin commented Jul 29, 2015

@dburles whoops, sorry about that, did not specify the version and somehow meteor gave me that version. Change to @1.0.3 and it works now.

@kidchenko
Copy link

Hi, i am having the same problem :(

@crapthings
Copy link

we can't attach helpers to Meteor.users

@levino
Copy link

levino commented Oct 5, 2015

@crapthings Please elaborate, give some references. Thanks.

@crapthings
Copy link

Meteor.users.helpers

    organization: ->
        Organizations.findOne @organizationId

ypeError: Object [object Object] has no method 'helpers'
W20151005-23:47:17.861(8)? (STDERR) at collections/users.coffee:1:14
W20151005-23:47:17.861(8)? (STDERR) at collections/users.coffee:1:1
W20151005-23:47:17.862(8)? (STDERR) at /Volumes/Data/dev/nexushubs/lawflow/mobile1/.meteor/local/build/programs/server/boot.js:242:10
W20151005-23:47:17.862(8)? (STDERR) at Array.forEach (native)
W20151005-23:47:17.862(8)? (STDERR) at Function..each..forEach (/Users/monsterstep/.meteor/packages/meteor-tool/.1.1.9.1mnd3gj++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11)
W20151005-23:47:17.862(8)? (STDERR) at /Volumes/Data/dev/nexushubs/lawflow/mobile1/.meteor/local/build/programs/server/boot.js:137:5

@levino
Copy link

levino commented Oct 5, 2015

@crapthings This is not how this works...

@zeroasterisk
Copy link

FYI - this happens when you add any package which applies a _transform on the Meteor.users collection... for example it can be replicated very easily by adding both this package and https://github.com/copleykj/socialize-user-model/

$ grep -r '_transform' .meteor/local/build/programs/server/packages/

@dburles
Copy link
Owner

dburles commented Jan 7, 2016

Hey @zeroasterisk are you applying helpers to Meteor.users or Users?

@dburles
Copy link
Owner

dburles commented Jan 7, 2016

Though from glancing at the source code, it's unlikely that it wouldn't conflict with collection-helpers

@VitorHP
Copy link

VitorHP commented Feb 23, 2016

Well. I'm having the same kind of error, but not exactly with the same setup.

I can't use collection-helpers inside any packages. I have some local packages, one of them (app-core) declares a bunch of collections and helpers and export them for use by other local packages and the main app.

I'm getting `Object [object Object] has no method 'helpers'"

I tried api.use('dburles:collection-helpers') on the same package as the collections, on another package required by the app-core package and on the main app, but nothing works.

The only way to make it work is putting my collections.js in the main app and requiring dburles:collection-helpers from the main app too.

@dburles
Copy link
Owner

dburles commented Feb 23, 2016

@VitorHP it should work alright, I'm pretty sure telescope does exactly that, maybe take a look at the source?

@VitorHP
Copy link

VitorHP commented Feb 23, 2016

@dburles Alright! For some reason I was getting a very old version of the lib. When I specified the right version, it started to work again.

Probably my fault, since I started learning Meteor just these days.

Thank you very much for the help!

@in0ni
Copy link

in0ni commented Sep 23, 2016

I am having a similar issue using the TAPi18n-db package. Is there any workaround?

Error thrown is from here:
https://github.com/dburles/meteor-collection-helpers/blob/master/collection-helpers.js#L5

@dburles
Copy link
Owner

dburles commented Sep 23, 2016

@in0ni Unfortunately that package isn't compatible with collection-helpers, I see you have opened an issue over there, hopefully it can be resolved

@crapthings
Copy link

crapthings commented Nov 28, 2017

if u have package that doesn't compatible with collection-helpers

try change the order of package

Meteor.users.helpers undefined

mikowals:batch-insert
dburles:collection-helpers

working

dburles:collection-helpers
mikowals:batch-insert

@medisoft
Copy link

Hello! I'm having the same problem as this error

server/collections/sources.ts (21, 20): Property 'helpers' does not exist on type 'Collection<Source>'.
server/collections/users.ts (6, 14): Property 'helpers' does not exist on type 'Collection<User>'.

I have version 1.1.0 of collection-helpers

Meteor runs after that alerts, and in meteor shell I can access the helpers, but it is annoying to see that warnings/errors

Any way to add a property called helpers to that type?

Thanks!

@medisoft
Copy link

medisoft commented May 24, 2018

Ok, I made it work.

I installed the meteor typings from this url https://github.com/meteor-typings/meteor

Then changed the meteor typing in typings/globals/meteor/index.d.ts

search for interface Collection<T> { and at the end of that interface add something like this

helpers(helpers: any): any;

Then everything worked without the warning.

I suppose the dburles:collection-helprs should add the typings, but I don't know how to do that

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests