如何通过NodeJs API呈现HTML页面?

时间:2018-08-22 13:14:28

标签: javascript node.js http server ecstatic

**运行http服务器后,我尝试访问URL- http://127.0.0.1:8080-但是我得到的不是我写的内容 每次尝试时,“ Node.js v8.11.4 / ecstatic服务器正在运行@ 127.0.0.1:8080”。

但是,直接从按钮上单击时,index.html文件会打开,将chrome显示为默认浏览器,并且对代码进行的任何更改(例如添加电子邮件,密码或更改背景颜色)都会相应地捕获。我该如何解决这个问题?**

这是index.html-

的代码
<!DOCTYPE html>
<html>
    <head>
            <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
            <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha256-3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E=" crossorigin="anonymous"></script>
            <link rel="stylesheet" href="css/style.css" />
            <script src="https://www.gstatic.com/firebasejs/5.4.0/firebase.js"></script>
    </head>

    <body class="bg-dark">

        <div id="login-card" class="card">
            <div class="card-body">
                <h1> Wallpaper App Admin </h1>

                <form id="login-form">
                    <div class="form-group">
                        <label for="email">Email</label>
                        <input type="email" id="email" class="form-control" />
                    </div>
                    <div class="form-group">
                            <label for="password">Password</label>
                            <input type="password" id="password" class="form-control" />
                        </div>
                        <div class="form-group">
                            <button id="btn-login" type="button" class="btn btn-primary">Login</button>
                        </div>
                </form>
            </div>
        </div>
        <script src="js/app.js"></script>

        <script>

            firebase.auth().onAuthStateChanged(function(user){
                if(user){
                    window.location.href = "admin.html";
                }
            });

        </script>

        </body>
</html>

1 个答案:

答案 0 :(得分:0)

在我看来,您找不到能够响应HTML页面的端点。 每个网址都是向服务器发出请求的API。我们在浏览器上输入的网址是GET API。

您的http://localhost:8080http://127.0.0.1:8080是API,其端点为/

如果您使用的是expressJs,请寻找类似这样的内容:

app.get('/yourAPI/', (req, res) => {
    //res.render is function that send html page to browser
    res.render('htmlFile');
});
// So your page will be available on http:127.0.0.1:8080/yourAPI
// or http://localhost:8080/yourAPI

请注意,您的函数应为app.get(),因为您将无法从浏览器调用app.post。

您需要找出哪个响应HTML页面的端点。