📌  相关文章
📜  在 Node.js 中构建一个简单的静态文件 Web 服务器(1)

📅  最后修改于: 2023-12-03 14:51:03.046000             🧑  作者: Mango

在 Node.js 中构建一个简单的静态文件 Web 服务器

在开发 Web 应用时,我们往往需要在本地搭建一个静态文件 Web 服务器,以便在开发过程中可以更方便地调试页面和资源等内容。Node.js 可以很方便地帮助我们搭建这样一个服务器。

前置条件

在开始构建一个静态文件 Web 服务器之前,我们需要先安装 Node.js。如果你还没有安装,可以在官网上下载相应的安装包:https://nodejs.org/zh-cn/download/

安装完成后,我们可以通过执行以下命令来检查 Node.js 是否成功安装:

node -v

如果安装成功,控制台输出当前安装的 Node.js 版本号即为成功。

构建静态文件 Web 服务器

以下是一个构建静态文件 Web 服务器的示例代码,你可以复制并保存为 server.js 文件:

const http = require('http')
const fs = require('fs')
const path = require('path')

const port = 3000

const server = http.createServer((req, res) => {
    const filePath = path.join(__dirname, req.url)
    const extname = path.extname(filePath)
    let contentType = 'text/html'

    switch (extname) {
        case '.js':
            contentType = 'text/javascript'
            break
        case '.css':
            contentType = 'text/css'
            break
        case '.json':
            contentType = 'application/json'
            break
        case '.png':
            contentType = 'image/png'
            break
        case '.jpg':
            contentType = 'image/jpg'
            break
        case '.wav':
            contentType = 'audio/wav'
            break
    }

    fs.readFile(filePath, (error, content) => {
        if (error) {
            if (error.code === 'ENOENT') {
                res.writeHead(404)
                res.end('File not found')
            } else {
                res.writeHead(500)
                res.end(`Server error: ${error.code}`)
            }
        } else {
            res.writeHead(200, { 'Content-Type': contentType })
            res.end(content, 'utf-8')
        }
    })
})

server.listen(port, () => {
    console.log(`Server running at http://localhost:${port}/`)
})

现在我们可以通过执行以下命令来启动这个服务器:

node server.js

在浏览器中输入 http://localhost:3000/ 即可访问该服务器,该服务器将会返回当前目录下对应的文件。

如何使用

我们可以在当前目录下存放需要访问的静态文件,例如 index.html、index.css、index.js 等文件,然后在浏览器中访问 http://localhost:3000/index.html 即可访问 index.html 文件。

该服务器还支持访问其他格式的文件,例如图片、音频、JSON 等文件等。

总结

在本文中,我们介绍了如何在 Node.js 中构建一个简单的静态文件 Web 服务器,该服务器可以帮助我们在开发过程中更方便地测试页面和静态资源。如果你想了解更多关于 Node.js 的知识,可以查看官方文档和教程。