0. 環境

[Next.js] 12.0.10

1. 課題

既存システムのリプレースなどで、どうしてもハイフンを含むQueryStringをNext.jsで扱わなければならない場合。

(例) https://example.com/index?user-id=100

  • この書き方だと

    const {
        query: { user-id },
    } = req;
    
  • エラーになります。

    Error: error: Expected ',', got '-'
        
    |
    22 |     query: { user-id },
    |                  ^
    
    Caused by:
        0: failed to process js file
        1: Syntax Error
    

2. 対策

  • これで回避できました。

    const userId = req.query['user-id'];