Code uploads successfully on esp8266-01 but doesn't run
if you are using a nodemcu, the pin numbers do not correspond to the digital pins, they correspond to the gpio pins. The digital pin 2 is the gpio 4 and the digital pin 4 is the gpio 2.
Here you have a list of digital and gpio pins:

D0 = GPIO16;
D1 = GPIO5;
D2 = GPIO4;
D3 = GPIO0;
D4 = GPIO2;
D5 = GPIO14;
D6 = GPIO12;
D7 = GPIO13;
D8 = GPIO15;
D9 = GPIO3;
D10 = GPIO1;