To są pliki konfiguracyjne, oto moje podejście.
Struktura plików
.
├── app.js
├── _configs
| ├── configManager.js
| ├── database.js
| └── platform
| ├── mobile.js
| └── desktop.js
pliki Środowisko Configs
Configration js są moduły dla każdego urządzenia, a następnie ConfigManager obsługuje których jeden jest aktywny na podstawie urządzenia.
//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",
}
Database Config
konfiguracje baza danych powinna być scentralizowana.
Zazwyczaj można połączyć się z wieloma bazami danych w tej samej instancji węzła, jednak nie jest to zalecane. jeśli koniecznie musisz, po prostu użyj dwóch obiektów (zamiast "mongodb" zamień na "mobileMongoDb" i "desktopMongoDb"), ale polecam użyć jednej bazy danych i podzielić ją na dwa główne dokumenty lub użyć określonych prefiksów ustawionych w twojej platformie specyficzne konfiguracje.
// databse.js example
module.exports= {
mongodb: {
host : 'localhost',
port : 27017,
user : '',
password : '',
database : 'DB_NAME'
},
}
configManager.js (oddanie rzeczy razem)
Jest to prosty plik tylko do demonstracji ..
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) { /* ... */ }
});
Detect mobilnych od nagłówka
czytaj więcej tutaj https://gist.github.com/dalethedeveloper/1503252
Czy możesz dodać fragmenty kodu, które mogą wyjaśnić twój problem . –