言いたいシチュエーション:
「midnight snack」が正解か知りたい。
I eat a midnight snack.

イメージで考えると簡単!

I have a late-night snack.

「late-night(遅い夜)」の「snack(スナック/軽食)」で表現しています。「snack」はお菓子と軽食という意味があります。

I have a bedtime snack.

「bedtime(ベッドタイム)」は「寝る時間」となり、ここでは「寝る前に食べる軽食」というイメージです。

「small eater」さんが考えた「I eat a midnight snack.」は正解です!

しかし、「eat(イート・食べる」を「have」で表現しても同様になります。