我创建了一个Maven项目,并在该Maven项目中对客户端和服务器端进行了编码。
服务器端代码位于src/main/java
中,客户端代码位于src/main/webapp
中,因此当我转到localhost:8080/example
时,可以使用project/application
。
现在,我正在尝试将客户端代码移至节点项目,并使用localhost:3000
与maven项目上的服务器端Java通信。
我已经进行了很多次谷歌搜索,似乎没有任何效果。以下是我认为是问题的代码的一部分...
function loadLogin() {
let xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200) {
document.getElementById('view').innerHTML = xhr.responseText;
document.getElementById('navbar').style.display = 'none';
loadLoginInfo();
}
}
console.log('GET request - login.view');
xhr.open('GET', 'login.view', true);
xhr.send();
}
public String process(HttpServletRequest req, HttpServletResponse resp) {
System.out.println("[LOG] - Processing request with RequestViewHelper.process(): " + req.getRequestURI());
switch(req.getRequestURI()) {
case "/ProjectOne/login.view":
return "pages/login.html";
}
这是使登录名可以在我的Maven项目(客户端+服务器)上工作的代码的一部分。
Bu,当我将客户端代码移至节点时,我似乎无法localhost:3000
与localhost:8080
进行通信。
我尝试获取localhost:8080/example
,但是没有用。
非常感谢您的帮助。
答案 0 :(得分:0)
您错过了一些概念。
使用Maven,您正在使用 MVC 方法,从数据库加载数据并将其呈现在特定视图中。这意味着您在相同的代码库中拥有前端和后端。
如果要将这两个内容分开,则需要更改逻辑。 您应该构建 API后端(与语言/框架无关),并在使用其他技术开发前端之后。
例如,您可以使用NodeJS创建一个后端API项目,并使用Angular创建一个前端API项目。如果您想进一步了解这种方式,请参见Learn Mean STACK。