2012-08-12 72 views
1

我已經開始學習coffescript,並試圖讓一個簡單的嘖嘖。但是,當我嘗試使用 coffee app.coffee命令運行我的app.coffee文件時,我一直在獲取此異常;無法在nodejs上運行coffeescript應用程序。收到異常

PS C:\Users\Office\Workspace\node\blog-demo\coffeepress> coffee .\app.coffee 
Error: In .\app.coffee, Parse error on line 1: Unexpected ' ' 
    at Object.parseError (C:\Users\Rishav\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\parser.js:477 
:11) 
    at Object.parse (C:\Users\Rishav\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\parser.js:554:22) 
    at exports.compile.compile (C:\Users\Rishav\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\coffee- 
script.js:43:20) 
    at Object.exports.run (C:\Users\Rishav\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\coffee-scrip 
t.js:79:34) 
    at compileScript (C:\Users\Rishav\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:175:29 
) 
    at fs.stat.notSources.(anonymous function) (C:\Users\Rishav\AppData\Roaming\npm\node_modules\coffee-script\lib\coffe 
e-script\command.js:150:18) 
    at fs.readFile (fs.js:176:14) 
    at Object.oncomplete (fs.js:297:15) 

咖啡代碼是;

### 
Module dependencies. 
### 
express = require("express") 
routes = require("./routes") 
http = require("http") 
path = require("path") 
app = express() 
app.configure -> 
    app.set "port", process.env.PORT or 3000 
    app.set "views", __dirname + "/views" 
    app.set "view engine", "jade" 
    app.use express.favicon() 
    app.use express.logger("dev") 
    app.use express.bodyParser() 
    app.use express.methodOverride() 
    app.use app.router 
    app.use express.static(path.join(__dirname, "public")) 

app.configure "development", -> 
    app.use express.errorHandler() 

app.get "/", routes.index 
http.createServer(app).listen app.get("port"), -> 
    console.log "Express server listening on port " + app.get("port") 

我所有的模塊都是最新的可用日期。

+1

你試過刪除前三行嗎?評論可能只是打破了那裏的解析器。 – arvidkahl 2012-08-12 17:43:26

+0

這是我嘗試的第一件事。我也確保沒有縮進問題。 – 2012-08-12 19:53:27

+0

只需點擊編輯下方的問題並複製源代碼即可試用您的​​代碼。也許你也嘗試一樣。不要忘記刪除每行開頭的前四個空格。 – vik 2012-08-13 05:51:11

回答

2

你的代碼是絕對的罰款。然而CoffeeScript的保留像static關鍵字因此,如果您運行coffee -c your_file.coffee你會看到你的編譯JS在your_file.js。用編輯器打開它,看看有什麼不對。

我打賭行app.use express.static(path.join(__dirname, "public"))被編譯到財產以後像app.use(express["static"](path.join(__dirname,"public"))。這會導致你的錯誤;)

在未來,如果有錯誤,編譯CoffeeScript的第一,然後看看編譯的版本,看看有什麼不對的地方。

+0

謝謝。這是一個古老的問題,但根據您的建議爲我解決了這個問題。 – 2013-01-14 11:06:57

+0

我遇到了同樣的問題,所以我記錄瞭解決方案。 – 2013-01-14 21:33:17

1

我可以除外路線文件,你不提供運行代碼。我會嘗試重新創建該文件,並查看是否有任何損壞的實際文件。我有時遇到了Coffeescript文件在縮進時格式不正確的問題,它會抱怨別的。

我懷疑的另一件事是,有可能是錯誤的東西在你的路由文件。

+0

哦,路線是由快遞創建的。這是默認的快速啓動。我第一次運行快速演示項目。然後使用js2coffee將所有js文件轉換爲咖啡。 – 2012-08-13 06:40:24

相關問題