UNPKG

1.42 kBJavaScriptView Raw
1'use strict';
2
3const extensionParser = require('mio-extensions');
4const i18n = require('mio-i18n')({path: 'i18n', defaultLocale: 'en'});
5
6// List materials
7function error(req, res, err){
8 var errorCode = 406;
9 const genericMessage = i18n.get('errors.generic.message');
10 const genericHint = i18n.get('errors.generic.hint');
11 var errorMessage;
12
13 if(err){
14 if(typeof err == 'number'){
15 errorCode = parseInt(err);
16 }else if(err.code){
17 errorCode = err.code;
18 }
19
20 if(typeof err == 'string'){
21 errorMessage = err;
22 if(err.toLowerCase() == 'not found' || err.toLowerCase() == 'not found!'){
23 errorCode = 404;
24 }
25 }else if (err.message){
26 errorMessage = err.message;
27 if(errorMessage.split(' ')[0]=='E11000'){
28 errorMessage = 'Already Exist!';
29 }
30 }else{
31 errorMessage = i18n.get('errors.'+errorCode+'.message', genericMessage);
32 }
33
34 }
35
36 const errorHint = i18n.get('errors.'+errorCode+'.hint', genericHint);
37 const ps = i18n.get('messages.nothingHere', 'Actually, there is nothing to see here...');
38 const error = i18n.get('errors.error', 'Error');
39
40 extensionParser.render(req, res, {
41 status: errorCode,
42 template: 'views/error.vash',
43 data: {
44 code: errorCode,
45 message: errorMessage,
46 hint: errorHint,
47 ps: ps,
48 error: error
49 }
50 });
51}
52
53// Export methods
54module.exports = {
55 error: error
56};