我正在使用mongodb將應用程序錯誤日誌存儲爲json文檔。我希望能夠將錯誤日誌格式化爲HTML,而不是將普通的json返回給瀏覽器。日誌是正確的無模式 - 他們可以在任何時候改變,因此也沒有用試圖做到這一點(翡翠):如何使用node.js/mongodb在HTML中顯示任意的無模式數據
- var items = jsonResults
- each item in items
h3 Server alias: #{item.ServerAlias}
p UUID: #{item.UUID}
p Stack trace: #{item.StackTrace}
h3 Session: #{item.Session}
p URL token: #{item.Session.UrlToken}
p Session messages: #{item.Session.SessionMessages}
,因爲我不知道發生了什麼實際上將是在JSON結構提前時間。但是我想要的肯定是可能的,但是?我正在閱讀的所有內容都表明,模式不是由數據庫強制執行的,而是您的視圖代碼將概述您的模式 - 但是我們有數百個可能的字段可以隨時刪除或添加,以便管理視圖這種方式相當難以管理。
我錯過了什麼?我是否對這項技術做出錯誤的假設?走錯了路?
編輯額外以下信息評論:
的JSON文檔看起來像這樣
{
"ServerAlias":"GBIZ-WEB",
"Session":{
"urltoken":"CFID=10989&CFTOKEN=f07fe950-53926E3B-F33A-093D-3FCEFB&jsessionid=84303d29a229d1",
"captcha":{
},
"sessionmessages":{
},
"sessionid":"84197a667053f63433672873j377e7d379101"
},
"UUID":"53934LBB-DB8F-79T6-C03937JD84HB864A338",
"Template":"\/home\/vagrant\/dev\/websites\/g-bis\/code\/webroot\/page\/home\/home.cfm, line 3",
"Error":{
"GeneratedContent":"",
"Mailto":"",
"RootCause":{
"Message":"Unknown tag: cfincflude.",
"tagName":"cfincflude",
"TagContext":[
{
"RAW_TRACE":"\tat cfhome2ecfm1296628853.runPage(\/home\/vagrant\/dev\/websites\/nig-bis\/code\/webroot\/page\/home\/home.cfm:3)",
"ID":"CFINCLUDE",
"TEMPLATE":"\/home\/vagrant\/dev\/websites\/nig-bis\/code\/webroot\/page\/home\/home.cfm",
"LINE":3,
"TYPE":"CFML",
"COLUMN":0
},
{
"RAW_TRACE":"\tat cfdisplay2ecfm1093821753.runPage(\/home\/vagrant\/dev\/websites\/nig-bis\/code\/webroot\/page\/display.cfm:6)",
"ID":"CFINCLUDE",
"TEMPLATE":"\/home\/vagrant\/dev\/websites\/nig-bis\/code\/webroot\/page\/display.cfm",
"LINE":6,
"TYPE":"CFML",
"COLUMN":0
}
]
}
}
...等,但很可能這取決於單個項目產生改變該日誌被配置爲觸發。
我想要結束的是一個格式化的HTML頁面,其中包含以下列出的每個父級和子級的標題,遍歷數據結構。上面的Jade示例實際上是我們需要輸出的內容,但沒有在視圖中對其進行硬編碼。
邁克在這個問題的評論中的分析是從一堆沒有真正共同點的集合中創建一個表格式的結構,這種分析是激動人心的。數據是關係型的,但只在單個文檔中 - 將模式編碼成任何東西實際上是不可能的,因爲它要求您知道數據結構首先是什麼樣的。
你能張貼您的日誌看起來像什麼,改變的版本會是什麼樣子的例子嗎? – dignifiedquire 2012-07-19 11:49:44
難道是你正在試圖從可能對每個文檔不同的屬性集合創建一個類似結構的表一個安全的假設?我也投入了大量的思想,並且還提出了我真正喜歡的解決方案。如果我的假設是正確的,你可能想把它添加到你的問題。這將使其更易讀一點:)順便說一下+1 – Mike 2012-07-19 12:49:03
大問題 - 額外的好處是,我沒有聽說過underscore.js之前現在它也是非常有用的。謝謝! – Mike 2012-07-19 12:49:55