Nodejs之搭建本地服务器

Nodejs之搭建简单服务器

以下内容转载编辑自菜鸟教程, 笨笨熊咦

以下内容相应代码已上传至GitHub:https://github.com/tsora-c/node-server

  1. 引入required模块

我们使用 require 指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http,实例如下:

const http=require("http");
  1. 创建服务器

接下来我们使用 http.createServer() 方法创建服务器,并使用 listen 方法绑定 8888 端口。 函数通过 request, response 参数来接收和响应数据。

实例如下,在你项目的根目录下创建一个叫 server.js 的文件,并写入以下代码:

const http =require("http");
// 设置端口
const post=8888;
http.createServer((request,response)=>{
    // 发送 HTTP 头部 
    // HTTP 状态值: 200 : OK
    // 内容类型: text/plain
    response.writeHead(200,{
        "Content-Type":"text/plain"
    });
    // 发送响应数据 "Hello World"
    response.write("Hello World\n"); 
    // 结束
    response.end();
}).listen(post);
// 终端打印如下信息
console.log("Server running at http://127.0.0.1:"+post+"/");

以上代码我们完成了一个可以工作的 HTTP 服务器。

使用 node 命令执行以上的代码:

node server.js
Server running at http://127.0.0.1:8888/

接下来,打开浏览器访问 http://127.0.0.1:8888/,你会看到一个写着 "Hello World"的网页。

到这里,一个简单的服务器就基本完成了,但是仅能显示这些并不是服务器该做的事

  1. 服务器首页

一个服务器起码得有个显示首页,作为服务器的门户;

新建一个简单的index.html作为服务器首页,代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <h1>Index</h1>
</body>
</html>

那么就需要读取html文件的内容,node中的File System模块就提供这样的功能

修改server.js代码

// 声明http协议
const http = require("http");
// 声明文件操作系统对象
const fs = require("fs");
// 声明端口
const post = 8888;
http.createServer((request, response) => {
    // 发送 HTTP 头部 
    // HTTP 状态值: 200 : OK
    // 内容类型: text/html
    response.writeHead(200, {
        "Content-Type": "text/html"
    });
    fs.readFile("./index.html", 'utf-8', (err, data) => {
        if (err) {
            throw err;
        }
        // 发送响应数据
        response.write(data);
        // 结束
        response.end();
    })

}).listen(post);
// 终端打印如下信息
console.log("Server running at http://127.0.0.1:" + post + "/");

打开浏览器访问 http://127.0.0.1:8888/,网页就已经变成index页面。

  1. 服务器多页面

同样,一个服务器仅有一个首页也是远远不够的;

新建一个简单的about.html作为服务器介绍页面,代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <h1>about</h1>
</body>
</html>

那么该如何切换页面?很显然,就是根据地址栏来判断加载相应的页面文件;

那么这些相应的信息在哪里?就在http.createServer的回调函数中request对象中

修改server.js代码

// 声明http协议
const http = require("http");
// 声明文件操作系统对象
const fs = require("fs");
// 声明端口
const post = 8888;
http.createServer((request, response) => {

    const url = request.url;
    // 发送 HTTP 头部 
    // HTTP 状态值: 200 : OK
    // 内容类型: text/html
    response.writeHead(200, {
        "Content-Type": "text/html"
    });
    if (url === "/" || url === "/index") {
        fs.readFile("./index.html", 'utf-8', (err, data) => {
            if (err) {
                throw err;
            }
            // 发送响应数据
            response.write(data);
            // 结束
            response.end();
        })
    }
    else{
        fs.readFile("./about.html", 'utf-8', (err, data) => {
            if (err) {
                throw err;
            }
            // 发送响应数据
            response.write(data);
            // 结束
            response.end();
        })
    }

}).listen(post);
// 终端打印如下信息
console.log("Server running at http://127.0.0.1:" + post + "/");

打开浏览器访问 http://127.0.0.1:8888/http://127.0.0.1:8888/indexhttp://127.0.0.1:8888/about,网页就已经变成index页面。

  1. 调整文件位置

为了方便代码维护以及读取,我们就需要修改文件相应位置以及命名

当然这些依据个人习惯以及项目要求设定

以下仅代表个人观点

在这里插入图片描述

  1. 拓展

基于现学的相应知识,我们可以拓展完成哪下内容

  • 简单服务器
  • 简单路由
  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用Node.js搭建本地服务器非常简单。首先,我们需要安装Node.js。 安装完成后,打开终端(或命令行窗口),进入想要搭建服务器的文件夹。 创建一个新的Node.js文件,命名为server.js(或其他任何你喜欢的名称),然后将以下代码复制到该文件中: ```javascript const http = require('http'); const fs = require('fs'); const path = require('path'); const server = http.createServer((req, res) => { let filePath = path.join(__dirname, req.url); let contentType = 'text/html'; fs.exists(filePath, (exists) => { if (exists) { fs.readFile(filePath, (error, content) => { if (error) { res.writeHead(500); res.end('Server Error'); } else { res.writeHead(200, { 'Content-Type': contentType }); res.end(content, 'utf-8'); } }); } else { res.writeHead(404); res.end('File Not Found'); } }); }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); }); ``` 上述代码使用了Node.js的HTTP、FS和Path模块。server.js文件创建了一个HTTP服务器。当有请求发送到服务器时,它会检查请求的URL地址是否是文件路径,并将请求的文件作为响应发回给客户端。 在终端中运行以下命令启动服务器: ``` node server.js ``` 这将在本地启动一个HTTP服务器,监听在3000端口上。你可以通过浏览器访问http://localhost:3000/ 来访问该服务器。 请注意,在代码中,`contentType`变量默认设置为'text/html',这意味着服务器会将所有请求的文件作为HTML文件返回。你也可以根据需要更改它,例如如果你想返回CSS文件,可以将其设置为'text/css'。 以上就是使用Node.js搭建本地服务器并访问文件的简单过程。希望对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值