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 服务器基本上是一样的。
安装完成后可以通过命令行测试安装是否成功,输入:node -v,应该会显示当前安装node版本号。
本文中用到的模块,都是nodejs核心模块,不需要从外部下载,如果有需要,可以使用以下命令安装:npm install xxx。
因为在大陆地区可能还需要配置淘宝镜像:
从这个角度看,整个”接收 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】使用node.js搭建一个本地web服务器
- node.js搭建一个自己的本地web服务器
- Node.js搭建WEB服务器
- Ubuntu的web服务器搭建系列之Redis(JDK+Tomcat+MySQL+Nginx+Redis+NodeJS)
- Ubuntu的web服务器搭建系列之MySQL(JDK+Tomcat+MySQL+Nginx+Redis+NodeJS)
- Ubuntu的web服务器搭建系列之MySQL(JDK+Tomcat+MySQL+Nginx+Redis+NodeJS)
- 学习 node.js 搭建web服务器
- Ubuntu的web服务器搭建系列之Nginx(JDK+Tomcat+MySQL+Nginx+Redis+NodeJS)
- Ubuntu搭建web服务器系列之JDK(JDK+Tomcat+MySQL+Nginx+Redis+NodeJS)
- node js +forever+ nginx 搭建高性能web服务器
- node js +forever+ nginx 搭建高性能web服务器
- three.js自学之旅(1)——用node.js在本地搭建最最=基本web环境
- 基于node.js的简单本地服务器搭建
- 使用node.js搭建一个简单的本地服务器
- 用node.js搭建的简单web服务器
- 建立一个node.js服务器(使用express搭建第一个Web环境)
- Node.js搭建Web服务器
- Ubuntu搭建web服务器系列之Tomcat(JDK+Tomcat+MySQL+Nginx+Redis+NodeJS)
- Node.js的web服务器搭建与js的ajax交互