Das sind Konfigurationsdateien, hier ist mein Ansatz.
Dateistruktur
.
├── app.js
├── _configs
| ├── configManager.js
| ├── database.js
| └── platform
| ├── mobile.js
| └── desktop.js
Umwelt Configs
Configration Dateien js Module für jedes Gerät sind, kümmert sich dann um die ConfigManager, welche basierend auf dem Gerät aktiv ist.
//mobile.js example
module.exports = {
device: 'mobile',
configVar: 3000,
urls: {
base: 'DEVICE_SPECIFIC_BASE_URL',
api: 'DEVICE_SPECIFIC_BASE_URL'
},
mixpanelKey: 'DEVICE_SPECIFIC_BASE_URL',
apiKey: "DEVICE_SPECIFIC_BASE_URL",
}
Datenbank Config
Datenbank Konfigurationen sollte zentralisiert werden.
Normalerweise können Sie eine Verbindung mit mehreren Datenbanken innerhalb derselben Knoteninstanz herstellen, dies wird jedoch nicht empfohlen. Wenn Sie unbedingt müssen, verwenden Sie einfach zwei Objekte (anstelle von "mongodb" ersetzen durch "mobileMongoDb" und "desktopMongoDb"), aber ich empfehle, dass Sie eine Datenbank verwenden und teilen Sie es in zwei Hauptdokumente oder verwenden Sie bestimmte Präfixe in Ihrer Plattform -spezifische Konfigurationen
// databse.js example
module.exports= {
mongodb: {
host : 'localhost',
port : 27017,
user : '',
password : '',
database : 'DB_NAME'
},
}
configManager.js (Putting Dinge zusammen)
Dies ist eine einfache Datei für Demonstration nur ..
var userAgent = req.headers['User-Agent'];
var isMobile = /Mobile|Android|/i.test(userAgent);
// require them all to be cached when you run node.
var configs = {
mobile: require('./platform/mobile'),
desktop: require('./platform/desktop')
}
var activeConfig = isMobile? configs.mobile : configs.desktop;
var dbConfigs = require('./databse');
var mongoose = require('mongoose');
var express = require('express');
var app = express();
app.get('/', function (req, res) {
var finalresp = 'Hello from ';
finalresp += isMobile? 'mobile' : 'desktop;
finalresp += activeConfig.configVar;
res.send(finalresp);
});
mongoose.connect(dbConfigs.mongodb.host, function(err) {
if(isMobile) { /* ... */ }
});
Mobil Detect von Header
lesen Sie hier mehr https://gist.github.com/dalethedeveloper/1503252
Können Sie Teile Ihres Codes hinzufügen, die Ihr Problem erklären können . –