首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >trudesk票务系统突然停止工作

trudesk票务系统突然停止工作
EN

Stack Overflow用户
提问于 2018-11-23 19:05:30
回答 2查看 296关注 0票数 0
代码语言:javascript
复制
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 node js web应用程序。它使用mongo db作为数据库。我安装在我的本地,它的工作.but在服务器上运行应用程序时,我得到了这个错误

EN

回答 2

Stack Overflow用户

发布于 2018-12-05 03:26:30

不久前,我在摆弄数据库时遇到了这个问题。我通过验证第109行(根据上面的错误和the github repo at this time)在src\settings\defaults.js中引用的对象解决了这个问题。

你可以在引用type._id的代码中看到这个问题。您需要确认类型是对象,_id是字符串。从第107行开始:

代码语言:javascript
复制
            var defaultTicketType = new SettingsSchema({
                name: 'ticket:type:default',
                value: type._id
            });

更改,以便在引用对象的键之前对对象进行验证:

代码语言:javascript
复制
            if (typeof type !== 'object' ||  typeof type._id !== 'string' ) return;
            var defaultTicketType = new SettingsSchema({
                name: 'ticket:type:default',
                value: type._id
            });
票数 0
EN

Stack Overflow用户

发布于 2019-01-31 02:57:57

代码语言:javascript
复制
if (typeof type !== 'object' ||  typeof type._id !== 'string' ) return;

虽然这是一个有效的检查,但返回不会调用callback,从而阻止默认脚本正确完成退出。此外,_id可能并不总是作为字符串读取,并且value是混合类型的。

代码语言:javascript
复制
if (!_.isObject(type) || _.isUndefined(type._id)) return callback('Invalid Type. Skipping.')

我已经将上述检查添加到代码库中。如果检测到默认票证类型设置不存在,则调用引用函数。这应该只在第一次启动时发生,除非手动从MongoDB中删除/更新文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53445511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档