Система билетов Trudesk перестала работать внезапно - PullRequest
0 голосов
/ 23 ноября 2018
11/23 07:18:15 [3112] - �[32minfo�[39m: trudesk v1.0.2 Copyright (C) 2014-2018 Chris Brame
11/23 07:18:15 [3112] - �[32minfo�[39m:
11/23 07:18:15 [3112] - �[32minfo�[39m: Running in: development
11/23 07:18:15 [3112] - �[32minfo�[39m: Server Time: Fri Nov 23 2018 07:18:15 GMT+0000 (Coordinated Universal Time)
11/23 07:18:16 [3112] - �[32minfo�[39m: Connected to MongoDB
11/23 07:18:19 [3112] - �[32minfo�[39m: TruDesk is now listening on port: 8118
11/23 07:18:19 [3112] - �[32minfo�[39m: SocketServer Running
11/23 07:18:20 [3112] - �[34mdebug�[39m: Checking Default Settings...
11/23 07:18:20 [3112] - �[34mdebug�[39m: Timezone set to America/New_York
TypeError: Cannot read property '_id' of undefined
at C:\Program Files\iCuboid\trudesk-master\src\settings\defaults.js:109:33
at C:\Program Files\iCuboid\trudesk-master\node_modules\mongoose\lib\model.js:4451:16
at model.Query.(anonymous function).call (C:\Program Files\iCuboid\trudesk-master\node_modules\mongoose\lib\query.js:3606:7)
at C:\Program Files\iCuboid\trudesk-master\node_modules\kareem\index.js:315:21
at C:\Program Files\iCuboid\trudesk-master\node_modules\kareem\index.js:135:16
at args.(anonymous function) (C:\USERS\ICUBOID\APPDATA\ROAMING\NPM\node_modules\pm2\node_modules\event-loop-inspector\index.js:138:29)
at process._tickCallback (internal/process/next_tick.js:112:11)`

Я использую веб-приложение узла Trudesk.он использует mongo db в качестве database.i, установленного в моем локальном компьютере, но работает .but на сервере при запуске приложения, я получаю эту ошибку

Ответы [ 2 ]

0 голосов
/ 30 января 2019
if (typeof type !== 'object' ||  typeof type._id !== 'string' ) return;

Несмотря на то, что это допустимая проверка, при возврате не вызывается callback, что не позволяет сценарию по умолчанию правильно завершить завершение.Также _id не всегда может читаться как строка, а value имеет тип Mixed.

if (!_.isObject(type) || _.isUndefined(type._id)) return callback('Invalid Type. Skipping.')

Я добавил вышеупомянутую проверку в базу кода.Ссылочная функция вызывается, если она обнаруживает, что настройка типа билета по умолчанию отсутствует.Это должно происходить только при первом запуске, если только вы не удалите / не обновите документы вручную из MongoDB.

0 голосов
/ 04 декабря 2018

Я столкнулся с этой проблемой некоторое время назад, когда возился с базой данных.Я обошел его, проверив объект, на который ссылаются в src \ settings \ defaults.js в строке 109 (в соответствии с вышеуказанной ошибкой и репозиторием github в это время ).

Вы можетеувидеть проблему в коде, где указан type._id.Вы должны подтвердить, что тип является объектом, а _id является строкой.Начиная со строки 107:

            var defaultTicketType = new SettingsSchema({
                name: 'ticket:type:default',
                value: type._id
            });

Изменить, чтобы проверка объекта происходила до обращения к ключам объекта:

            if (typeof type !== 'object' ||  typeof type._id !== 'string' ) return;
            var defaultTicketType = new SettingsSchema({
                name: 'ticket:type:default',
                value: type._id
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...