簡體   English   中英

如何將 js 文件鏈接到 Node.js web 服務器中的 index.html?

[英]How do I link a js file to index.html in a Node.js web server?

我是 Node.js 的新手,我只是想創建簡單的 web 服務器,它可以服務 HTML、JS 和 CSS 文件。

服務器工作,我可以在本地主機中查看index.html 但我似乎無法將request.js鏈接到index.html 這是我的項目結構:

--public
----js
------request.js
----index.html
--app.js

應用程序.js

const http = require("http");
const fs = require('fs').promises;

const host = 'localhost';
const port = 8000;

const requestListener = function (req, res) {
    fs.readFile(__dirname + "/public/index.html")
        .then(contents => {
            res.setHeader("Content-Type", "text/html");
            res.writeHead(200); // success status code
            res.end(contents);
        })
        .catch(err => {
            res.writeHead(500);
            res.end(err);
            return;
        });
};

const server = http.createServer(requestListener);
server.listen(port, host, function(error)  {
    if (error) {
        console.log('Something went wrong', error)
    }
    else {
        console.log(`Server is running on http://${host}:${port}`);
    }
});

index.html

<!DOCTYPE html>

<html lang="en">

<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <script src="/js/request.js" defer></script>
    <title>Water Web Dev</title>
<body>

</body>
</html>
</head>

請求.js

const axios = require('axios');
const getBtn = document.getElementById('get-btn');

const getData = () => {
    axios.get('https://reqres.in/api/unknown')
        .then(function (response) {
            // success
            console.log(response);
        })
        .catch(function (error) {
            // error
            console.log(error);
        })
        .then(function () {
            // always executed
        });
}

getBtn.addEventListener('click', getData)

項目結構

您應該將 css 和 js 文件作為 static 文件進行服務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM