Questi sono file di configurazione, ecco il mio approccio.
Struttura del file
.
├── app.js
├── _configs
| ├── configManager.js
| ├── database.js
| └── platform
| ├── mobile.js
| └── desktop.js
file Ambiente Configs
configration sono moduli js per ogni dispositivo, quindi il configmanager gestisce quello attivo sulla base di dispositivo.
//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 di configurazione
configurazioni del database dovrebbero essere centralizzate.
In genere è possibile connettersi a più database all'interno della stessa istanza del nodo, tuttavia non è consigliabile. se devi assolutamente, usa solo due oggetti (invece di "mongodb" sostituisci con "mobileMongoDb" e "desktopMongoDb") ma ti consiglio di usare un database e dividerlo in due documenti principali, o usare determinati prefissi impostati nella tua piattaforma -Config specifici
// databse.js example
module.exports= {
mongodb: {
host : 'localhost',
port : 27017,
user : '',
password : '',
database : 'DB_NAME'
},
}
configManager.js (mettere le cose insieme)
Si tratta di un semplice file solo per la dimostrazione ..
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 Mobile dal colpo di testa
Read more here https://gist.github.com/dalethedeveloper/1503252
Puoi aggiungere porzioni del tuo codice che possono spiegare il tuo problema . –