2016-05-24 90 views
1

我得到這個錯誤ES6 Arrow功能異常標記

[11:55:38] Unexpected token => at test.js : 
175 | // } 
176 | }) 
177 | var f = (req, res, next) => { 
------------------------------------^ 
178 | return res.json('test'); 
179 | }; 

當運行這個特定的代碼。

var f = (req, res, next) => { 
    return res.json('test'); 
}; 

app.get('/test', f); 

我玩弄ES6,我無法找到此錯誤的解決方案,即使我的路線是正常工作並返回「測試」。

任何人都可能知道這個片段的問題?

==== UPDATES =====

'use strict'; 

module.exports.controller = function (app) { 

    app.get('/test', (req, res, next) => { 
    return res.json('test'); 
    }); 
} 

謝謝! 凱文·傑伊·德拉克魯茲

+1

哪個版本的NodeJS?看起來像Arrow功能不被它支持。 – Tushar

+1

另外,如果你的應用程序運行(返回'test'),當它的錯誤「Unexpected token => at test.js」? – JagsSparrow

+0

我正在使用v6.2.0。我認爲這是最新版本。 –

回答

1

好吧,

我發現它是從哪裏來的,從gulp-jscs附帶的錯誤。 正在更新gulp-jscs3.0.2修正了錯誤。

謝謝大家!

0

你可以寫在最後表達

module.exports.controller = function (app) { 
    app.get('/test', (req, res, next) => res.json('test')); 
} 

因爲arrow functions總是結果沒有大括號。

+1

你需要用括號來表示語句和'return'。如果函數的主體是表達式,則可以省略大括號。 – 1983

+0

@FizzyTea,在這種情況下。 –

+0

是的,重點是箭頭函數不會返回最後一條語句的結果。除非函數的主體是表達式,否則你需要一個'return'。 – 1983