0
点赞
收藏
分享

微信扫一扫

Node.js http模块

boom莎卡拉卡 2022-01-11 阅读 165

http模块( 创建Web服务器模块 )

在Node.js 中,不需要使用 IIS、Apache 等第三方Web服务器软件

基于Node.js提供的  http模块,可以实现生成服务器软件,对外提供Web服务

创建基本Web服务器

//导入http模块
const http = require('http');

//创建 Web 服务器实例
var server = http.createServer();

//为服务器实例绑定request 事件,监听客户端的请求
server.on('request',function(req,res){
    //req请求对象(访问与 客户端 相关的数据或属性) 
    //req.url  客户端请求 URL 地址
    //req.method 客户端 method 请求类型 
    var url = req.url;
    var content = '<h1>404 Not found!</h1>';

    //根据不同url响应对应html内容
    if(url === '/' || url === '/index.html'){
        //访问首页
        content = '<h1>首页</h1>';
    }
    //res响应对象(访问与 服务器 相关的数据或属性)
    //res.end  向客户端发送指定内容并结束这次请求处理
    //解决 中文乱码 问题  设置响应头 Content-Type 为 text/html;charset=utf-8
    res.setHeader('Content-Type','text/html;charset=utf-8');
    var strInfo = 'WebServer 服务器正在被访问;URL地址:'+req.url+'; Method类型:'+req.method;
    console.log(strInfo);
    res.end(content);
});

//启动服务器
server.listen(8080,function(){
    console.log('Server running at http://127.0.0.1:8080.');
});

项目部署案例:

//导入模块
const fs = require('fs');
const path = require('path');
const http = require('http');

//创建 Web 服务器实例
var server = http.createServer();

//为服务器实例绑定request 事件,监听客户端的请求
server.on('request',function(req,res){
    var url = req.url;
    //res.setHeader('Content-Type','text/html;charset=utf-8');  //会影响样式编码
    var content = '<h1>404 Not found!</h1>';

    //URL 映射为文件储存路径(路径优化)
    //var urlPath = path.join(__dirname,url);
    var urlPath = '';
    if(url === '/')
        urlPath = path.join(__dirname,'./Clock/index.html');
    else
        urlPath = path.join(__dirname,'./Clock',url);

    //读取文件
    fs.readFile(urlPath,'utf8',function(err,dataStr){
        if(err)
            return res.end(content);
        res.end(dataStr);
    });
});

//启动服务器
server.listen(8080,function(){
    console.log('Server running at http://127.0.0.1:8080.');
});

 

 

举报

相关推荐

0 条评论