学习笔记--node.js搭建web服务器
以下是一个本地web服务器搭建案例,记为学习笔记,以便日后有需要时查看。
我们采用node.js搭建,所以事先肯定需要安装node.js。前往官网安装即可,安装好后可以使用cmd输入命令node -v来检测安装是否成功。如果安装成功了,那么会显示node.js的版本号
我们接下来的javascript代码会在node.js环境中运行,所以只有将node.js安装好,才能成功启动服务。
创建js文件,在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 += "test.html"; // 入口文件,此处默认test.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/");
这样,一个js文件就编写好了,该js文件命名为server.js,那么我们在cmd中就使用如下命令启动服务:node server
当出现server running at http://127.0.0.5:8085/时,服务就启动成功了。
然后,我们创建一个html文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div>helloworld</div>
</body>
</html>
该html文件起名为:test.html
起其他名字也是可以的,只不过要在上方js文件中的pathname将文件名修改为你实际命名的html文件。
将该html文件放入和server.js在同个目录中
最后在浏览器中输入:127.0.0.5:8085即可访问test.html文件
到此,一个简单又好玩的本地服务就搭好了,可以将自己做好的网页放到上面演示,也是很不错的体验哦