将节点客户端连接到Maven服务器端

时间:2018-08-24 20:40:36

标签: java node.js maven

我创建了一个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:3000localhost:8080进行通信。

我尝试获取localhost:8080/example,但是没有用。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您错过了一些概念。

使用Maven,您正在使用 MVC 方法,从数据库加载数据并将其呈现在特定视图中。这意味着您在相同的代码库中拥有前端和后端。

如果要将这两个内容分开,则需要更改逻辑。 您应该构建 API后端(与语言/框架无关),并在使用其他技术开发前端之后。

例如,您可以使用NodeJS创建一个后端API项目,并使用Angular创建一个前端API项目。如果您想进一步了解这种方式,请参见Learn Mean STACK