Meteor.isServer
は、ウィンドウで正常に動作します。新しいバージョンの流星で
、あなたがmeteor create testApp
を実行し、この作成され、以下:
/client
のすべてのコードは唯一のクライアント上で実行され、そして/server
のすべてのコードは、サーバー上でのみ実行されます。
/client/main.js
import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';
import './main.html';
Template.hello.onCreated(function helloOnCreated() {
// counter starts at 0
this.counter = new ReactiveVar(0);
});
Template.hello.helpers({
counter() {
return Template.instance().counter.get();
},
});
Template.hello.events({
'click button'(event, instance) {
// increment the counter when button is clicked
instance.counter.set(instance.counter.get() + 1);
},
});
Meteor.startup(() => {
console.log('Ping! from /client/main.js - Meteor.startup()')
});
console.log('Ping! from /client/main.js - Top Level')
/server/main.js
import { Meteor } from 'meteor/meteor';
Meteor.startup(() => {
console.log('Ping! from /server/main.js - Meteor.startup()')
});
console.log('Ping! from /server/main.js - Top Level')
:
これらの初期のファイルは、以下のログコマンドを含めるように編集/作成には、両方の場所(クライアント/サーバー)とのコードを注文する実行されることを示します
/shared.js
ここでは3210
// Runs on Both
console.log('Hi from /shared.js - Top Level')
Meteor.startup(() => {
console.log('Hi from /shared.js - Meteor.startup()')
});
// Runs on Server
if(Meteor.isClient){
console.log('Hi from /shared.js - isClient')
Meteor.startup(() => {
console.log('Hi from /shared.js - isClient, Meteor.startup()')
});
}
// Runs on Server
if(Meteor.isServer){
console.log('Hi from /shared.js - isServer')
Meteor.startup(() => {
console.log('Hi from /shared.js - isServer, Meteor.startup()')
});
}
/lib/shared.js
console.log('Ping! from /lib/shared.js - Top Level')
Meteor.startup(() => {
console.log('Ping! from /lib/shared.js - Meteor.startup()')
});
サーバとブラウザからの結果のログです:クライアントとサーバーの両方で
、ないMeteor.startup
ブロック内console.log
行が続く、最初に実行Meteor.startup
コールバックは、サーバープロセスの開始が完了するまで、またはDOMの準備が完了するまで遅延されるためです。それらはMeteor.startup
への呼び出しが行われたのと同じ順序で実行されます。
Meteor.startup
ブロックにないコールは、ファイルがロードされるときに、Default file load orderに続いて実行されます。