[英]SyntaxError: Unexpected token = on module
我一直在 Nodejs 的類中使用胖箭頭 function 並且我收到了以下錯誤,該錯誤在我的 PC 上運行良好。
static post = async (req, res, next) => {
^
SyntaxError: Unexpected token =
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.<anonymous> (/home/selacomn/repositories/ecommerce-backend/src/mobile/routes/order.js:2:25)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
我在部署中使用的環境是:
node --version >> v10.22.0
npm --version >> 6.14.6
這段代碼在我的系統上運行良好,我的系統環境是:
node --version >> v12.18.3
npm --version >> 6.14.6
我認為版本控制不是問題,因為我以前遇到過這個問題,但我忘記了我是如何做到的。 而且,我無法對這種開發進行試驗,因為問題出在服務器內部。 那么,你們有什么可以幫忙的嗎?
出現問題的代碼如下:
class OrderController {
static post = async (req, res, next) => {
Order.create()
};
static getOne = async (req, res, next) => {
Order.getOne(id)
};
static getAll = async (req, res, next) => {
Order.getAll()
};
}
來自MDN :
static 關鍵字為 class 定義了 static 方法。
您似乎正在嘗試將 static 屬性設置為箭頭 function,這將有效地創建 static 方法,但這是無效的語法。 正確的語法是:
class OrderController {
static async post(req, res, next) {
Order.create();
}
static async getOne(req, res, next) {
Order.getOne(id);
}
static async getAll(req, res, next) {
Order.getAll();
}
}
如果您真的需要箭頭功能,請使用賦值,但通常沒有理由這樣做:
class OrderController {
}
OrderController.post = async (req, res, next) => {
Order.create();
};
OrderController.getOne = async (req, res, next) => {
Order.getOne(id);
};
OrderController.getAll = async (req, res, next) => {
Order.getAll();
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.