1

私は最近coffescriptを学び始め、簡単な小屋を流そうとしていました。ただし、コマンドを使用してapp.coffeeファイルを実行しようとすると、 coffee app.coffeeこの例外が発生し続けます。

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")

私のモジュールはすべて、現在までに入手可能な最新のものです。

4

2 に答える 2

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"))ます。そしてそれはあなたのエラーを引き起こします;)

将来、エラーが発生した場合は、最初にコーヒースクリプトをコンパイルしてから、コンパイルされたバージョンを確認し、何が問題になっているのかを確認してください。

于 2013-01-11T11:49:43.860 に答える
1

あなたが提供していないルートファイルを除いて、私はコードを実行することができます。ファイルを再作成して、実際のファイルに破損がないかどうかを確認します。インデントでCoffeescriptファイルの形式が正しくないという問題が時々発生し、他の問題が発生します。

私が疑うもう一つのことは、ルートファイルに何か問題があるかもしれないということです。

于 2012-08-13T05:44:29.597 に答える