首页 > js教程 > 正文

nodejs搭建web服务器的小白做法

原创 2018-09-14 17:22:29 0 2
本篇文章给大家带来的内容是关于nodejs搭建web服务器的小白做法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

nodejs搭建简单的web服务器

1.1简介

Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装,它主要用于创建快速的、可扩展的网络应用。

也就是说,浏览器的Javascript是浏览器js代码解析,而Node.js则是服务器端JS的代码解析器,存于服务器端的JS代码由Node.js来解析和应用。

注:虽然从某种意义上讲Nodejs和js 是同一种产物,写法用法不尽相同,但是重点来了,nodejs在作用域服务端,js只是作用域浏览器端,js可以指向浏览器,nodejs指向不了浏览器,所以有些api是不同的。

同理:js为弱类型语言,那么nodejs也是弱类型语言在语言算法上有事会有偏差,如果开发银行系统,支付系统不要用nodejs。(nodejs 适合IO密集型应用,不适合于CPU密集型应用。)

1.2node模块类型

模块类型有:   

1)官方提供的原生模块
global、util、querystring、url、buffer、fs、http、
2)第三方模块
mysql、oracle、express
3)自定义模块
文件模块和目录模块

1.3常用的原生模块 -- 难点重点

1)querystring模块用于处理http请求url中的查询字符串
var obj=qs.parse(str); 把查询字符串解析为js对象
var str=qs.parse(obj); 把js对象转换为查询字符串

2)url 模块用于解析一个http请求地址,获取其中各个不同的部分
var obj = url.parse(str) 把一个url字符串解析为一个对象
var obj = url.parse(str,true) 把一个url字符串解析为一个对象,并把其中的查询字符串也解析为对象

3)buffer 缓冲区,本质是一块内存区域,用于暂存以后要用到的数据(可能是数字,字符串,二进制图片、音视频等),
该区域就成为“缓存”。 ******全局对象无需require引用******

//创建一个大小为10字节的缓冲区
var buf1 = Buffer.alloc(10); //alloc:分配
console.log(buf1);
var buf2 = Buffer.alloc(1024*3); //alloc:分配3kb大小的缓冲区
console.log(buf2);
var buf3=Buffer.from(['a','b','c']);
console.log(buf3);
//使用一个字符串创建一个缓冲区
var buf4=Buffer.from('abcd');
console.log(buf4);
var buf5=Buffer.from('一二三文');
console.log(buf5);
//把缓冲区的内容转换为字符串
console.log(buf5.toString());

4)fs 文件系统模块
fs模块提供了对文件系统中的文件/目录进行增删改查、读写的功能。

//同步读取文件中的内容
var data=fs.readFileSync(file);
//同步向文件中写出内容(删除已有内容)
fs.writeFileSync(file,str/buf);
//同步向文件中追加写出内容(不删除已有内容)
fs.appendFileSync(file,str.buf)
例如fs异步读写文件 不需要等待直接往下走
//异步读取文件中的内容
fs.readFile(file,funcgtion(err,data){
});
//异步向文件中写出内容(删除已有内容)
fs.writeFile(file,str/buf,function(){
});
//异步向文件中追加写出内容(不删除已有内容)
fs.appendFile(file,str.buf,function(){

});

5)http 模块可用于编写基于http协议的客户端程序(即浏览器);
也可以编写基于http协议的服务器端程序(即web服务器)
用http模块编写web服务器:var server=http.createServer();
1)接收客户端的http请求消息
2)解析客户端请求消息
3)读取客户端请求的文件。
4)向客户端发送http响应消息,主体就是客户端请求的文件

1.4如何搭建一个web服务器

讲了上述内容,我们接下来可以讲一下如何用nodejs搭建一个小型的web服务器啦!(细看下面代码和注释哦!)

const http=require('http'); 
const url=require('url');
const fs=require('fs'); //引用模块前面讲过啦每个模块都是干嘛的
//创建一个http服务器
var server=http.createServer();
//让http服务器监听指定的端口
server.listen(80);
//当客户端请求到来时,处理请求消息
server.on('request',function(req,res){
    //处理消息 req请求消息,res响应消息
    console.log('nodejs服务器接收到一个请求');
    //解析客户端发来的请求消息
    console.log('请求地址'+req.url);
    var objURL=url.parse(req.url);
    /*console.log(objURL);*/
    res.setHeader('Content-Type','text/html;charset=utf-8');
    var path = objURL.pathname;
    if(path==='/login'){
        
        /*res.write('<h1>欢迎访问登录页面</h1>');*/
        fs.readFile('./public/login.html',(err,data)=>{  
            if(err){
                res.write('<h1>报错了</h1>');
            }else{
                res.statusCode=200;
                res.write(data);
                res.end();
            }
        });
        
    }else if(path==='/index'){
        
        fs.readFile('./public/index.html',(err,data)=>{
            if(err)throw err;//若存在错误抛出错误,后面不执行
            res.statusCode=200;
            res.write(data);
            res.end();
            
        });
    }else{
        
        fs.readFile('./public/404.html',(err,data)=>{
            if(err){
                res.write('<h1>报错了</h1>');
            }else{
                res.statusCode=404;
                res.write(data);
                res.end();
            }
        });
    }
});

本文适用初级者,如想搭建健全的web服务器,还需要中间件更多的知识点。

以上就是nodejs搭建web服务器的小白做法的详细内容,更多请关注php中文网其它相关文章!

  • 相关标签:nodejs
  • 本文原创发布php中文网 ,转载请注明出处,感谢您的尊重!
  • 相关文章


  • Nodejs获取网络数据并生成Excel表格_node.js
  • Nodejs学习item【入门手上】_node.js
  • NodeJS的Promise的用法解析_javascript技巧
  • NodeJS创建基础应用并应用模板引擎_node.js
  • 快速掌握Node.js之Window下配置NodeJs环境_node.js
  • 网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
    独孤九贱(4)_PHP视频教程

    独孤九贱(4)_PHP视频教程

    江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。 PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

    独孤九贱(5)_ThinkPHP5视频教程

    独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

    独孤九贱(1)_HTML5视频教程

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。 ...

    ThinkPHP5实战之[教学管理系统]

    ThinkPHP5实战之[教学管理系统]

    本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    PHP入门视频教程之一周学会PHP

    PHP入门视频教程之一周学会PHP

    所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

    相关视频教程

  • 进击Node.js基础(二) 进击Node.js基础(二)
  • Nodejs + mongoDB实战开发微博系统视频教程 Nodejs + mongoDB实战开发微博系统视频教程
  • Vue.js + Node.js构建音乐播放器实战视频教学 Vue.js + Node.js构建音乐播放器实战视频教学
  • Node.js Express 4.x框架视频教程(下) Node.js Express 4.x框架视频教程(下)
  • nodeJS视频教程 nodeJS视频教程
  • 相关视频章节