您的位置:首页 > Web前端 > Node.js

Node.js搭建本地Web服务器(一)

2018-02-01 20:47 543 查看
如果我们使用PHP来编写后端的代码时,需要Apache 或者 Nginx 的HTTP服务器,并配上 mod_php5 模块和php-cgi。

从这个角度看,整个”接收 HTTP 请求并提供 Web 页面”的需求根本不需要 PHP 来处理。

不过对 Node.js 来说,概念完全不一样了。使用 Node.js 时,我们不仅仅实现一个应用,同时还实现了整个 HTTP 服务器。事实上,我们的 Web 应用以及对应的 Web 服务器基本上是一样的。

一、准备

首先,需要安装nodejs,这个可以去官网下载。

安装完成后可以通过命令行测试安装是否成功,输入:node -v,应该会显示当前安装node版本号。

本文中用到的模块,都是nodejs核心模块,不需要从外部下载,如果有需要,可以使用以下命令安装:npm install xxx。

因为在大陆地区可能还需要配置淘宝镜像:
npm install -g cnpm --registry=https://registry.npm.taobao.org


二、开始

新建js文件,可以命名为server.js,代码如下:

var http = require('http');
var url = require('url');
var path = require('path');
var fs = require('fs');

http.createServer(function (req, res) {
var pathname = __dirname + url.parse(req.url).pathname;
if (pathname.charAt(pathname.length - 1) == "/") {
pathname += "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"});
}
fs.readFile(pathname, function (err, data) {
res.end(data);
});
}else {
res.writeHead(404, {"Content-Type": "text/html"});
res.end("<h1 style='text-align:center;color:red'>404 Not Found</h1>");
}
});
}).listen(8000, "localhost");
console.log("listening at http://localhost:8000/");[/code] 

三、启动

当node安装完成及上述server.js文件也新建好之后。将其与你要访问的文件夹放在一起,可以放子层。比如,如果你要打开自己写的某个html文件。

你可以先将当前文件放入子层,然后输入如下命令启动web服务:

先打开
cmd
,进入server文件所在目录,比如是
test
目录; 然后输入:
node ./server.js
,

此时会提示
server running at http://localhost:8000/[/code], 表示启动服务成功;

最后打开浏览器,进入:
localhost:8000/
,即可访问此资源。

文件目录:

test

|—css

——–|__style.css

|—image

——–|__bg.png

|—js

——–|__script.js

|—index.html

|—server.js

四、最后

require
引用需要用到的模块;

createServer
方法表示创建一个http服务;

pathname
入口文件,此处默认
index.html


res.writeHead
发送HTTP头部\HTTP状态值:200:OK\内容类型:
text/html
文件;

res
可以自己添加信息来简单交互,比如可以修改点
header
信息或者修改返回的资源数据;

listen
当前监听端口。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  node.js