用Nodejs搭建服务器访问html、css、JS等静态资源文件

下面是用Nodejs搭建服务器访问静态资源文件的完整攻略。

1. 安装Node.js

首先,你需要安装Node.js。可以从Node.js官网下载。安装完成后,可在命令行输入以下命令验证是否安装成功:

node -v

2. 创建项目文件夹及文件

在任意目录下创建一个文件夹作为项目文件夹,我们在此文件夹内创建以下文件:index.html和app.js。

- projectFolder
  - index.html
  - app.js

3. 编写HTML、CSS、JS文件

为了方便演示,我们在index.html中添加一个简单的Hello World信息。在app.js中添加console.log('Hello World!')。

index.html

<!DOCTYPE html>
<html>
<head>
    <title>Node.js Static File Server</title>
</head>
<body>
    <h1>Hello World!</h1>
</body>
</html>

app.js

console.log('Hello World!');

4. 创建Http Server

我们需要创建一个HTTP server来提供文件。在项目文件夹内创建一个名为server.js的文件,并添加以下代码:

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

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {

  console.log(`Request for ${req.url} received`);

  let filePath = '.' + req.url;

  if (filePath === './') {
    filePath = './index.html';
  }

  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, (err, content) => {
    if (err) {
      if (err.code === 'ENOENT') {
        res.writeHead(404);
        res.end('File not found');
      } else {
        res.writeHead(500);
        res.end(`Sorry, check with the site admin for error: ${err.code}`);
      }
    } else {
      res.writeHead(200, { 'Content-Type': contentType });
      res.end(content, 'utf-8');
    }
  });

});

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

在上面的代码中,我们使用Node.js内置的http模块创建了一个HTTP服务器,并设置监听127.0.0.1:3000这个地址和端口。当访问Localhost:3000时,服务器将根据请求的URL读取文件并返回它们,同时浏览器将解析并呈现HTML、CSS和JavaScript代码。

在此示例中,我们在HTTP服务器中使用文件系统模块读取文件并将其传递给响应。我们还使用了path模块解析文件名的扩展名并设置Content-Type,以便浏览器可以正确解析它们。

5. 运行服务器

接下来,我们使用Node.js运行server.js文件来启动服务器。打开终端或命令行,导航到项目文件夹内,并运行以下命令:

node server.js

如果一切正常,你应该会看到类似下面的日志信息:

Server running at http://127.0.0.1:3000/

6. 访问静态资源文件

如果一切正常,现在你可以通过浏览器访问Localhost:3000,并查看index.html文件中的Hello World信息。

如果你之前已经创建过CSS、JS等静态资源文件,你可以通过浏览器访问Localhost:3000/css/style.css、Localhost:3000/js/app.js等URL来访问它们。

示例说明

下面提供两个示例说明。

示例一

在第一个示例中,我们在项目文件夹内创建以下文件:

- projectFolder
  - index.html
  - css
    - style.css
  - js
    - app.js

在index.html中,我们添加了一个link标签引入style.css和一个script标签引入app.js。

在style.css中,我们添加了一个简单的样式。

在app.js中,我们添加了一个控制台日志输出。

index.html

<!DOCTYPE html>
<html>
<head>
    <title>Node.js Static File Server</title>
    <link rel="stylesheet" href="css/style.css">
    <script src="js/app.js"></script>
</head>
<body>
    <h1>Hello World!</h1>
</body>
</html>

app.js

console.log('Hello World!');

style.css

h1 {
    color: blue;
}

运行server.js之后,在浏览器中访问Localhost:3000,你应该可以看到Hello World的蓝色标题。

示例二

在第二个示例中,我们创建了以下文件:

- projectFolder
  - index.html

在index.html中,我们使用style标签来添加CSS样式。

index.html

<!DOCTYPE html>
<html>
<head>
    <title>Node.js Static File Server</title>
    <style>
        h1 {
            color: red;
        }
    </style>
    <script>
        console.log('Hello World!');
    </script>
</head>
<body>
    <h1>Hello World!</h1>
</body>
</html>

运行server.js,然后在浏览器中访问Localhost:3000,你应该可以看到Hello World的红色标题和控制台中输出的Hello World日志信息。

以上是用Node.js搭建服务器访问静态资源文件的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用Nodejs搭建服务器访问html、css、JS等静态资源文件 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • 使用nodeJs来安装less及编译less文件为css文件的方法

    下面是详细的攻略: 1. 安装Node.js 在安装less之前,需要先安装Node.js。可以到 Node.js官网 下载适合自己系统的安装包,然后安装。 2. 安装less 打开终端或命令行窗口,输入以下命令来安装less: npm install -g less 这样就可以全局安装less了。 3. 编译less文件为css文件 输入以下命令来编译le…

    node js 2023年6月8日
    00
  • Nodejs环境实现socket通信过程解析

    Node.js环境实现socket通信过程解析 什么是Socket通信 Socket(套接字)是一种IPC(进程间通信)的方式,通常也称作”套接字”。通俗理解,套接字就像两人之间的一条电话线,通过这条线实现一对一或者一对多的实时通信。 在计算机网络中,Socket又称为“网络套接字”,是一种基于TCP/IP协议的网络通信方式。与传统的HTTP协议不同,它是一…

    node js 2023年6月8日
    00
  • 从零揭秘npm install的黑科技

    当我们执行 npm install 命令时,实际上发生了很多事情,这些事情涉及到Node.js的包管理、网络传输、依赖分析与解析等方面。本文将从这些方面介绍针对 npm install 核心机制的一些优化技巧,以帮助大家更好地理解这个过程,以及如何在实际开发中提高 npm install 的效率。 NPM的包管理 NPM执行 npm install 命令时,…

    node js 2023年6月8日
    00
  • node.js+express制作网页计算器

    制作网页计算器的完整攻略如下: 1. 环境安装 首先,确保本地已经安装了node.js环境,然后通过npm安装express框架。 npm install express –save 2. 项目初始化 创建一个项目文件夹,初始化项目,并创建一个主文件app.js。 mkdir calculator cd calculator npm init touch …

    node js 2023年6月8日
    00
  • JavaScript模板引擎原理与用法详解

    下面我将给出 “JavaScript模板引擎原理与用法详解”的完整攻略。 什么是模板引擎 模板引擎是一种将数据和模板(HTML 布局和标记)结合起来生成 HTML 文件的工具。通过使用 JavaScript 模板引擎,可以在客户端或服务端动态生成 HTML 页面。 常见的 JavaScript 模板引擎 以下是一些常见的 JavaScript 模板引擎: H…

    node js 2023年6月8日
    00
  • nodejs aes 加解密实例

    下面是关于“nodejs aes 加解密实例”的完整攻略。 前言 AES(Advanced Encryption Standard,高级加密标准)是一种可在各种设备上使用的加密算法。在本文中,我们将介绍如何在nodejs中使用AES加解密算法进行数据的加密和解密。 使用crypto模块进行加解密 nodejs中的crypto模块提供了一种简单的方式来加密和解…

    node js 2023年6月8日
    00
  • TypeScript转javaScript的方法示例

    下面是“TypeScript转javaScript的方法示例”的完整攻略: 1. 确保TypeScript安装完成 如果尚未安装TypeScript,请先在命令行中输入以下命令进行安装: npm install -g typescript 2. 创建TypeScript文件 在本地项目中创建一个TypeScript文件,并编写一些TypeScript代码。例…

    node js 2023年6月8日
    00
  • Node.js API详解之 V8模块用法实例分析

    当谈到Node.js的API时,V8模块是一个重要的组件。V8模块提供了操作 JavaScript 代码的能力,并且是Node.js运行时的核心。 下面将会详细讲解V8模块的用法,包括如何使用V8模块来编写高效的代码和如何调试V8代码。 V8模块的基本用法 Node.js中通过V8模块来访问JavaScript引擎V8中的API。V8模块是Node.js中最…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部