前言

使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块、文件系统、url解析模块、路径解析模块、以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器。
早先不使用web服务器的情况下想要在浏览器端访问本地资源,可以利用firefox浏览器,其可以自己启动一个小型web服务器。
为了让刚接触node的人也能大体看懂,本文的代码我将尽量简化。
准备
首先,需要安装nodejs,这个可以去官网下载,目前我本地安装的v0.12版本。
安装完成后可以通过命令行测试安装是否成功,输入:node -v,应该会显示当前安装node版本号。
本文中用到的模块,都是nodejs核心模块,不需要从外部下载,如果有需要,可以使用以下命令安装:npm install xxx。
开始
下一步,新建js文件,可以命名为server.js,代码如下:
var http = require('http');
var url = require('url');
var path = require('path');
var fs = require('fs');
var dir, arg = process.argv[2] || ''; // 命令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称
// 比如使用命令 node server debug,意思就是debug文件夹与server.js文件同级
// 且你想以debug文件夹启动web服务
http.createServer(function (req, res) {
var pathname = __dirname + url.parse(req.url).pathname;
dir = dir ? dir : pathname; // 记住dir(目录)
pathname = dir ? pathname.replace(dir, dir + arg + '/') : pathname; // 替换文件静态路径
if (path.extname(pathname) == "") {
pathname += "/";
}
if (pathname.charAt(pathname.length - 1) == "/") {
pathname += "index.html"; // 入口文件,此处默认index.html
}
fs.exists(pathname, function (exists) {
if (exists) {
switch (path.extname(pathname)) {
case ".html":
res.writeHead(200, {"Content-Type": "text/html"});
break;
case ".js":
res.writeHead(200, {"Content-Type": "text/javascript"});
break;
case ".css":
res.writeHead(200, {"Content-Type": "text/css"});
break;
case ".gif":
res.writeHead(200, {"Content-Type": "image/gif"});
break;
case ".jpg":
res.writeHead(200, {"Content-Type": "image/jpeg"});
break;
case ".png":
res.writeHead(200, {"Content-Type": "image/png"});
break;
default:
res.writeHead(200, {"Content-Type": "application/octet-stream"});
}
// res可以自己添加信息来简单交互 比如可以修改点header信息 或者修改返回的资源数据
fs.readFile(pathname, function (err, data) {
res.end(data);
});
}
else {
res.writeHead(404, {"Content-Type": "text/html"});
res.end("<h1>404 Not Found</h1>");
}
});
}).listen(8085, "127.0.0.5"); // 服务器端口
console.log("server running at http://127.0.0.5:8085/");
启动
当node安装完成及上述server.js文件也新建好之后。将其与你要访问的文件夹放在一起,可以放同层或者直接下层。比如,如果你要访问d:\test\debug文件夹。
你可以先将当前文件放入同层或者直接下,然后输入如下命令启动web服务:
node server debug`(同层), 或者`node server`(子层),server running at http://127.0.0.5:8085/`, 表示启动服务成功;最后
简单解释下上面的代码。
首先最上面的require表示需要用到那几个模块,先引用一下;
arg表示输入的命令行的第三个参数,上面是做了手动截取;
createServer方法表示创建一个http服务,以函数为参数,本文代码中传入了一个匿名函数;
listen表示创建的服务监听,一旦访问了此端口,将进入此前的匿名函数回调中,将资源返回给客户端。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对的支持。
# nodejs搭建web服务器
# node搭建web服务器
# nodejs服务器搭建
# Node.js原生api搭建web服务器的方法步骤
# Node.js搭建WEB服务器的示例代码
# 浅谈使用nodejs搭建web服务器的过程
# node学习记录之搭建web服务器教程
# 用nodejs搭建websocket服务器
# Nodejs 搭建简单的Web服务器详解及实例
# Nodejs如何搭建Web服务器
# 使用Node.js搭建Web服务器
# 命令行
# 官网
# 你要
# 客户端
# 第三个
# 的人
# 都是
# 几个
# 你可以
# 不需要
# 也能
# 你想
# 将其
# 可以通过
# 早先
# 相关信息
# 我将
# 可以使用
# 这篇文章
# 谢谢大家
相关文章:
如何在阿里云域名上完成建站全流程?
设计网站制作公司有哪些,制作网页教程?
Android使用GridView实现日历的简单功能
5种Android数据存储方式汇总
企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
独立制作一个网站多少钱,建立网站需要花多少钱?
如何零基础在云服务器搭建WordPress站点?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
安徽网站建设与外贸建站服务专业定制方案
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
购物网站制作公司有哪些,哪个购物网站比较好?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
内部网站制作流程,如何建立公司内部网站?
如何在阿里云ECS服务器部署织梦CMS网站?
建站之星如何快速解决建站难题?
北京的网站制作公司有哪些,哪个视频网站最好?
如何正确下载安装西数主机建站助手?
如何在宝塔面板中修改默认建站目录?
如何在腾讯云服务器快速搭建个人网站?
建站之星3.0如何解决常见操作问题?
如何快速搭建安全的FTP站点?
营销式网站制作方案,销售哪个网站招聘效果最好?
如何制作网站标识牌,动态网站如何制作(教程)?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何在云主机快速搭建网站站点?
如何安全更换建站之星模板并保留数据?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
seo网站制作优化,网站SEO优化步骤有哪些?
如何确保FTP站点访问权限与数据传输安全?
如何做静态网页,sublimetext3.0制作静态网页?
大型企业网站制作流程,做网站需要注册公司吗?
个人网站制作流程图片大全,个人网站如何注销?
免费网站制作appp,免费制作app哪个平台好?
免费视频制作网站,更新又快又好的免费电影网站?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
装修招标网站设计制作流程,装修招标流程?
Swift中循环语句中的转移语句 break 和 continue
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
C#如何使用XPathNavigator高效查询XML
c++怎么用jemalloc c++替换默认内存分配器【性能】
如何通过智能用户系统一键生成高效建站方案?
Bpmn 2.0的XML文件怎么画流程图
南京网站制作费用,南京远驱官方网站?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
建站之星如何快速生成多端适配网站?
成都网站制作报价公司,成都工业用气开户费用?
如何在Ubuntu系统下快速搭建WordPress个人网站?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
*请认真填写需求信息,我们会在24小时内与您取得联系。