2012-08-12 71 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

相关问题