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
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值