0

0

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

不言

不言

发布时间:2018-09-14 17:22:29

|

2057人浏览过

|

来源于php中文网

原创

 本篇文章给大家带来的内容是关于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对象转换为查询字符串

OpenWBS 企业建站管理系统 (手机+PC+微信)5.9.6
OpenWBS 企业建站管理系统 (手机+PC+微信)5.9.6

OpenWBS企业建站系统是一款功能强大的企业建站内容管理系统,广泛用于企业网站建设和企业网站制作,主要面向广大企业用户,帮助企业快速搭建企业官网,不论你是技术大咖还是建站小白,都可以使用OpenWBS快速搭建一个功能齐全的企业网站。 系统特点:安全稳定、无漏洞、搭建简单、SEO效果好 部署方式:独立部署(系统和数据库安装到企业客户自己的服务器里,保证安全) 授权类型:商

下载

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('

欢迎访问登录页面

');*/ fs.readFile('./public/login.html',(err,data)=>{ if(err){ res.write('

报错了

'); }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('

报错了

'); }else{ res.statusCode=404; res.write(data); res.end(); } }); } });

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

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
快速入门Node.JS全套完整版
快速入门Node.JS全套完整版

共83课时 | 8.4万人学习

nodejs开发基础教程
nodejs开发基础教程

共15课时 | 4.5万人学习

JavaScript设计模式视频教程
JavaScript设计模式视频教程

共28课时 | 5.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号