## Environment
### [Meteor.isClient](#/basic/Meteor-isClient)
Anywhere
Boolean variable. True if running in client environment.
### [Meteor.isServer](#/basic/Meteor-isServer)
Anywhere
Boolean variable. True if running in server environment.
`Meteor.isServer`可以用來限制代碼的運行位置,但是它不會阻止代碼發送到客戶端。任何你不想發送到客戶端的敏感代碼,例如包含密碼或是認證機制的代碼,都應該放到`server`文件夾。
### [Meteor.startup(func)](#/basic/Meteor-startup)
Anywhere
Run code when a client or a server starts.
#### Arguments
func Function
A function to run on startup.
在服務端,只要服務進程啟動完成,回調函數就會執行。在客戶端,只要頁面ready,回調函數就會執行。
最佳實踐是:把模板事件,模板Helper,`Meteor.methods`, `Meteor.publish`, 或是 `Meteor.subscribe` 之外的代碼包裹進 `Meteor.startup`,這樣APP的代碼就不會在環境準備好之前運行。
例如:當服務端啟動時,如果數據庫為空則創建一些初始數據,可以用下面的方式:
```
if (Meteor.isServer) {
Meteor.startup(function () {
if (Rooms.find().count() === 0) {
Rooms.insert({name: "Initial room"});
}
});
}
```
如果在服務端進程啟動完成之后,或是客戶端,頁面ready之后調用`Meteor.startup`,回調函數會立即執行。