-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathapp.js
More file actions
105 lines (89 loc) · 2.92 KB
/
app.js
File metadata and controls
105 lines (89 loc) · 2.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/**
* app.jvar allowCrossDomain = function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*')
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,PATCH')
res.header('Access-Control-Allow-Headers', 'Content-Type')
next()
}
if (process.env.NODE_ENV === 'development') {
app.use(allowCrossDomain)
}s
*
* Use `app.js` to run your app without `sails lift`.
* To start the server, run: `node app.js`.
*
* This is handy in situations where the sails CLI is not relevant or useful,
* such as when you deploy to a server, or a PaaS like Heroku.
*
* For example:
* => `node app.js`
* => `npm start`
* => `forever start app.js`
* => `node debug app.js`
*
* The same command-line arguments and env vars are supported, e.g.:
* `NODE_ENV=production node app.js --port=80 --verbose`
*
* For more information see:
* https://sailsjs.com/anatomy/app.js
*/
// Ensure we're in the project directory, so cwd-relative paths work as expected
// no matter where we actually lift from.
// > Note: This is not required in order to lift, but it is a convenient default.
process.chdir(__dirname);
// #6106 Implement proxy settings for backend
require('dotenv').config();
const { bootstrap } = require('global-agent');
bootstrap();
// Attempt to import `sails` dependency, as well as `rc` (for loading `.sailsrc` files).
let sails;
let rc;
try {
sails = require('sails');
rc = require('sails/accessible/rc');
} catch (err) {
console.error(
`Encountered an error when attempting to require('sails'):
${err.stack}
--
To run an app using "node app.js", you need to have Sails installed locally ("./node_modules/sails"). Just make sure you're in the same directory as your app and run "npm install".
If Sails is installed globally (i.e. "npm install -g sails"), you can also run this app with "sails lift". Running with "sails lift" will not run this file ("app.js"), but it will do exactly the same thing.
(It even uses your app directory's local Sails install, if possible.)`
);
return;
}// -•
const path = require('path');
const fs = require('fs');
const locales = fs.readdirSync(path.join(__dirname, './config/locales')).map(f => f.replace('.json', ''));
const i18n = new (require('i18n-2'))({
locales,
directory: path.join(__dirname, './config/locales'),
extension: '.json'
});
const { vsprintf } = require('sprintf-js');
sails._t = function (locale, key, ...args) {
const safeLocale = locales.includes(locale) ? locale : 'en';
try {
let msg = i18n.translate(safeLocale, key);
if (args.length) {
msg = vsprintf(msg, args);
}
return msg;
} catch (error) {
sails.config.customLogger.log(
'error',
'Error in translation (_t)',
{
key,
locale: locale,
safeLocale,
error: error?.message || error,
},
'i18n',
null
);
return `[?? ${key}]`;
}
};
// Start server
sails.lift(rc('sails'));