var loopback = require('loopback'); var boot = require('loopback-boot'); var path = require('path'); var fs = require('fs'); var i18n = require('i18n'); module.exports = { loopback: loopback, boot: vnBoot }; function vnBoot(app, rootDir, cb) { // Internationalization let i18nDir = rootDir + '/i18n'; if (fs.existsSync(i18nDir)) { i18n.configure({ directory: i18nDir, defaultLocale: 'es' }); app.get('/prueba', function(req, res) { i18n.setLocale(req.get('Accept-Language').substring(0,2)); res.send(i18n.__('Hello')); }); } // View let viewDir = path.join(rootDir, '../client'); if (fs.existsSync(viewDir)) { app.set('view engine', 'ejs'); app.set('views', viewDir); app.use(loopback.static(path.resolve(rootDir, '../client'))); } // Initialization let packageJson = require(rootDir + '/../package.json'); let appName = packageJson.name; app.start = function() { return app.listen(function() { app.emit('started'); var baseUrl = app.get('url').replace(/\/$/, ''); console.log(`Web server ${appName} listening at: %s`, baseUrl); }); }; let config = require('./config.json'); for (var key in config) { app.set(key, config[key]); } var bootOptions = { appRootDir: __dirname, appConfigRootDir: rootDir, modelsRootDir: rootDir, modelSources: [ "loopback/common/models", "loopback/server/models", __dirname + "/../common/models", __dirname + "/models", rootDir + "/../common/models", rootDir + "/models" ], mixinDirs: [ "loopback/common/mixins", "loopback/server/mixins", __dirname + "/../common/mixins", __dirname + "/mixins", rootDir + "/../common/mixins", rootDir + "/mixins" ], bootDirs: [ __dirname + "/boot", rootDir + "/boot" ] }; boot(app, bootOptions, function(err) { if (err) throw err; if (require.main === module) app.start(); if (cb) cb(app); }); }