javascript - Why is alert de[fine]d, and then two lines later, it's not (Meteor)? -


i've got code insert document mongodb collection:

meteor.methods({     'insertperson': function(firstname, lastname, streetaddr1, streetaddr2, placename, stateorprov, zipcode, emailaddr, phone, notes) {         console.log('insertperson reached'); // todo: remove before deploying         check(firstname, string);         . . .         alert('phone ' + phone);         var textaddrasemailaddr = meteor.call('gettextaddrasemailaddr', phone);          alert('textaddrasemailaddr ' + textaddrasemailaddr);         . . . 

...i see first alert ("phone 087163281"), not second; meteor console says alert not defined:

i20151022-07:22:49.659(-7)? insertperson reached i20151022-07:22:49.881(-7)? exception while invoking method 'insertperson' refer enceerror: alert not defined i20151022-07:22:49.881(-7)?     @ [object object].meteor.methods.insertperson ( both/methods.js:15:9) i20151022-07:22:49.882(-7)?     @ maybeauditargumentchecks (livedata_server.js: 1692:12) i20151022-07:22:49.882(-7)?     @ livedata_server.js:708:19 i20151022-07:22:49.882(-7)?     @ [object object]._.extend.withvalue (packages/ meteor/dynamics_nodejs.js:56:1) i20151022-07:22:49.883(-7)?     @ livedata_server.js:706:40 i20151022-07:22:49.883(-7)?     @ [object object]._.extend.withvalue (packages/ meteor/dynamics_nodejs.js:56:1) i20151022-07:22:49.883(-7)?     @ livedata_server.js:704:46 i20151022-07:22:49.884(-7)?     @ trycalltwo (c:\users\clay\appdata\local\.mete or\packages\promise\0.5.0\npm\node_modules\meteor-promise\node_modules\promise\l ib\core.js:45:5) i20151022-07:22:49.884(-7)?     @ doresolve (c:\users\clay\appdata\local\.meteo r\packages\promise\0.5.0\npm\node_modules\meteor-promise\node_modules\promise\li b\core.js:171:13) i20151022-07:22:49.885(-7)?     @ new promise (c:\users\clay\appdata\local\.met eor\packages\promise\0.5.0\npm\node_modules\meteor-promise\node_modules\promise\ lib\core.js:65:3) 

it seems if runtime engine has bad case of short-term memory loss - why recognize alert() @ first , then, milliseconds later, not recognize it?

here method (just below 1 above) being called:

,     'gettextaddrasemailaddr': function(phone) {         this.unblock();         var restcall = 'http://www.gettextemail.com/number.lookup.php?number=' + phone;         return meteor.http.call("get", restcall);     } 

it may there's problem last code block above, if that's problem, why complain alert() being undefined? has been transmogrified, has suffered virtual lobotomy?

update

just sure alert()s weren't causing problem, changed them console.log()s, , thinks "call" undefined:

i20151022-07:59:07.240(-7)? insertperson reached i20151022-07:59:07.365(-7)? phone 0871632810 i20151022-07:59:07.365(-7)? exception while invoking method 'insertperson' typee rror: cannot call method 'call' of undefined i20151022-07:59:07.365(-7)?     @ [object object].meteor.methods.gettextaddrase mailaddr (both/methods.js:37:28) 

line 37 in methods.js is:

return meteor.http.call("get", restcall); 

is there wrong that, or...???

this fun behavior of meteor if define meteor method on both client , server-side, can both alert on browser , error log in server.

you can define meteor method purely servers-side putting in /server folder , use console.log exclusively.

alternatively can wrap code in:

if (meteor.isclient) {     // code } 

and go on merry way alerts.

update:

where define meteor methods judgement call. 1 huge advantages leaving on both client/server enabling meteor's latency compensation.

see optimistic ui section: https://www.meteor.com/tutorials/blaze/security-with-methods

at same time doing means have beware of fact both client , server call method. code have handle both cases, meaning functions defined on 1 environment not other (such alert) need special attention.


Comments

Popular posts from this blog

php - Invalid Cofiguration - yii\base\InvalidConfigException - Yii2 -

How to show in django cms breadcrumbs full path? -

ruby on rails - npm error: tunneling socket could not be established, cause=connect ETIMEDOUT -