2012-10-02 42 views
2

最近我正在一個網站上使用expressJSjade添加谷歌地圖。
我在jade中發生了「拼寫錯誤」,導致Google地圖無法正確加載(無顯示)。玉語法錯誤不捕獲

在任何地方都沒有發生任何錯誤,並且花了很多時間才發現原因是遺漏了字母'',導致地圖無法渲染。

有沒有辦法在jade中發現上述錯誤?
我必須修改express嗎?

以下是我正在使用的jade文件。

layout.jade

!!! 5 
html(lang='en') 
    include includes/head 
    body 
    .wrapper 
     include includes/header 
     block content 
     include includes/footer 

包括/ head.jade

head 
    meta(charset='UTF-8') 
    title= title 
    block stylesheets 
    link(href='/site.css', rel='stylesheet',) 
    block scripts 

Gmap.jade

extends ../layout 

append stylesheets 
    style 
    #Gmap{ 
     height: 400px; 
     width: 760px; 
    } 
    etc... 

append scripts 
    script(src='http://maps.google.com/maps/api/js?sensor=false') 
    etc ... 

includes/head.jade有一個block stylesheets
Gmap.jade中調用append stylesheets
stylesheets拼寫爲stylesheet,花了很長時間才發現此問題。
沒有錯誤發生,網頁呈現'好'沒有谷歌地圖。

可以將jade/express定製爲在出現不匹配時拋出錯誤?
(除了在寫出東西時更小心)。

+0

我很想知道這個答案,如果你有想過它。 –

+0

我還沒弄明白。我剛剛特別小心。我想我只會發一個問題到https://github.com/visionmedia/jade/issues並發表一個答案,如果他們迴應的話。 – user1460015

回答

1

我有點困惑,你說沒有錯誤被拋出?所以屏幕完全是空白的?

您是否在服務器代碼的某個地方使用了express.errorHandler()?你可以設置這樣的錯誤信息。

app.use(express.errorHandler({ dumpExceptions: true , showStack: true }))) 

這可能會解決您沒有錯誤消息的問題。如果您想了解有關Express.js錯誤處理程序的更多信息,可以查看this page。 Express只是Connect.js的一個包裝;這是底層代碼。

+0

正如我以上所述,除谷歌地圖以外,所有內容都已發佈。沒有錯誤被拋出。我確實使用了'app.use(...' – user1460015

相關問題