खोज…
उन्नत पर्यावरण विन्यास
अधिक जटिल अनुप्रयोगों के लिए, आप कई पर्यावरण चर का उपयोग करके एक `` settings.json` वस्तु का निर्माण करना चाहते हैं।
if(Meteor.isServer){
Meteor.startup(function()){
// this needs to be run on the server
var environment, settings;
environment = process.env.METEOR_ENV || "development";
settings = {
development: {
public: {
package: {
name: "jquery-datatables",
description: "Sort, page, and filter millions of records. Reactively.",
owner: "LumaPictures",
repo: "meteor-jquery-datatables"
}
},
private: {}
},
staging: {
public: {},
private: {}
},
production: {
public: {},
private: {}
}
};
if (!process.env.METEOR_SETTINGS) {
console.log("No METEOR_SETTINGS passed in, using locally defined settings.");
if (environment === "production") {
Meteor.settings = settings.production;
} else if (environment === "staging") {
Meteor.settings = settings.staging;
} else {
Meteor.settings = settings.development;
}
console.log("Using [ " + environment + " ] Meteor.settings");
}
});
}
METEOR_SETTINGS के साथ एप्लिकेशन पैरामीटर निर्दिष्ट करना
METEOR_SETTINGS पर्यावरण चर JSON ऑब्जेक्ट्स को स्वीकार कर सकता है, और Meteor.settings ऑब्जेक्ट में उस ऑब्जेक्ट को उजागर करेगा। सबसे पहले, कुछ कॉन्फ़िगरेशन जानकारी के साथ अपने ऐप रूट में settings.json जोड़ें।
{
"public":{
"ga":{
"account":"UA-XXXXXXX-1"
}
}
}
फिर आपको अपनी सेटिंग फ़ाइल का उपयोग करके अपना एप्लिकेशन लॉन्च करना होगा।
# run your app in local development mode with a settings file
meteor --settings settings.json
# or bundle and prepare it as if you're running in production
# and specify a settings file
meteor bundle --directory /path/to/output
cd /path/to/output
MONGO_URL="mongodb://127.0.0.1:27017" PORT=3000 METEOR_SETTINGS=$(cat /path/to/settings.json) node main.js
फिर इन सेटिंग्स को Meteor.settings से एक्सेस किया जा सकता है और आपके ऐप में उपयोग किया जा सकता है।
Meteor.startup(function(){
if(Meteor.isClient){
console.log('Google Analytics Account', Meteor.settings.public.ga.account);
}
});
सर्वर पर पर्यावरण का पता लगाना
पर्यावरण चर भी process.env वस्तु के माध्यम से सर्वर के लिए उपलब्ध हैं।
if (Meteor.isServer) {
Meteor.startup(function () {
// detect environment by getting the root url of the application
console.log(JSON.stringify(process.env.ROOT_URL));
// or by getting the port
console.log(JSON.stringify(process.env.PORT));
// alternatively, we can inspect the entire process environment
console.log(JSON.stringify(process.env));
});
}
उल्का विधि का उपयोग करके ग्राहक पर्यावरण का पता लगाना
सर्वर पर पर्यावरण का पता लगाने के लिए, हमें सर्वर पर एक सहायक विधि बनाना होगा, क्योंकि सर्वर यह निर्धारित करेगा कि यह किस वातावरण में है, और फिर क्लाइंट से सहायक विधि को कॉल करें। मूल रूप से, हम सर्वर से क्लाइंट तक पर्यावरण की जानकारी को रिले करते हैं।
//------------------------------------------------------------------------------------------------------
// server/server.js
// we set up a getEnvironment method
Meteor.methods({
getEnvironment: function(){
if(process.env.ROOT_URL == "http://localhost:3000"){
return "development";
}else{
return "staging";
}
}
});
//------------------------------------------------------------------------------------------------------
// client/main.js
// and then call it from the client
Meteor.call("getEnvironment", function (result) {
console.log("Your application is running in the " + result + "environment.");
});
NODE_ENV का उपयोग करके ग्राहक पर्यावरण का पता लगाना
Meteor 1.3 के रूप में, Meteor अब क्लाइंट पर NODE_ENV चर को डिफ़ॉल्ट रूप से उजागर करता है।
if (Meteor.isClient) {
Meteor.startup(function () {
if(process.env.NODE_ENV === "testing"){
console.log("In testing...");
}
if(process.env.NODE_ENV === "production"){
console.log("In production...");
}
});
}