вижу пару проблем. Во-первых, это не правильно:
api.use(bodyParser);
Для ответа JSON вы должны сделать следующее:
api.use(bodyParser.json());
И анализатор тела встроен в Express, так что вы не нужно вручную загружать модуль body-parser. Вы можете просто сделать это:
api.use(express.text());
Затем в коде на стороне клиента это:
console.log(req.resonseText);
написано с ошибкой и должно быть таким:
console.log(req.responseText);
И в коде на стороне клиента вы также должны проверять код состояния, возвращаемый ответом.
К вашему сведению, новый интерфейс fetch()
в браузере настолько приятнее использовать, чем XMLHttpRequest
.