簡體   English   中英

SyntaxError: Unexpected token = on module

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM