ejs - это язык шаблонов , что означает, что он только контролирует как отображение страницы и ничего не меняет, что происходит со страницей в браузере клиента после ее загрузки,
Изменение кода на это должно решить проблему:
<p id="resMessage"></p>
<div id="generalSettings" class="main-menu-content">
<% if (showData.prefix) { %>
<script type="text/javascript">
function savePrefix() {
try {
configData({
'prefix': document.getElementById('resMessage')
});
var resMessage = document.getElementById("resMessage")
resMessage.style.backgroundColor = 'green';
resMessage.innerHTML = "Success!"
} catch (err) {
var resMessage = document.getElementById("resMessage")
resMessage.style.backgroundColor = 'red';
resMessage.innerHTML = `Error: ${err.toString()}`
console.log(err);
}
}
</script>
<input type="text" id="prefix" value="<%= showData.prefix %>" maxlength="6"><input type="submit" onclick="<%= savePrefix() %>">
<% } %>
</div>