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在服务器上运行应用程序时,我得到了这个错误
发布于 2018-12-05 03:26:30
不久前,我在摆弄数据库时遇到了这个问题。我通过验证第109行(根据上面的错误和the github repo at this time)在src\settings\defaults.js中引用的对象解决了这个问题。
你可以在引用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
});发布于 2019-01-31 02:57:57
if (typeof type !== 'object' || typeof type._id !== 'string' ) return;虽然这是一个有效的检查,但返回不会调用callback,从而阻止默认脚本正确完成退出。此外,_id可能并不总是作为字符串读取,并且value是混合类型的。
if (!_.isObject(type) || _.isUndefined(type._id)) return callback('Invalid Type. Skipping.')我已经将上述检查添加到代码库中。如果检测到默认票证类型设置不存在,则调用引用函数。这应该只在第一次启动时发生,除非手动从MongoDB中删除/更新文档。
https://stackoverflow.com/questions/53445511
复制相似问题