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, rootModule) { // 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", path.join(__dirname, "../common/models"), path.join(__dirname, "models"), rootDir + "/../common/models", rootDir + "/models" ], mixinDirs: [ "loopback/common/mixins", "loopback/server/mixins", path.join(__dirname, "../common/mixins"), path.join(__dirname, "mixins"), rootDir + "/../common/mixins", rootDir + "/mixins" ], bootDirs: [ path.join(__dirname, "boot"), rootDir + "/boot" ] }; boot(app, bootOptions, function(err) { if (err) throw err; if (require.main === rootModule) app.start(); }); }