Вы должны монтировать статический файл, обслуживающий непосредственно при запуске сервера, а не после того, как поступит первый запрос, поэтому эта строка:
app.get('/', () => app.use(express.static(__dirname + '/public/login')));
должно быть:
app.use(express.static(__dirname + '/../public/login'));
Вы также должны перейти на одну папку, поскольку код запускается в каталоге /server/
, что можно сделать с помощью /../
.
Если вы хотите сервер index.html только из общедоступной папки, а не всех файлов в нем, то вы можете сделать это
app.get('/', (req, res) => res.sendFile('index.html', { root: __dirname + '/../public/login'));