由于没有购买云服务器和域名,本文主要介绍如何用nodejs搭建一个本地的web服务器。这里需要使用到express和serve-index这2个模块,所以需要先通过npm安装这两个模块(已经安装过的请忽略)。 (express模块是nodejs专门处理web服务的。serve-index是用于将服务器上的某个目录发布出来,目录下所有文件都可以通过浏览器浏览。)
// 安装express和serve-index
sudo npm install express -g
sudo npm install serve-index -g
然后打开终端,通过终端进入想要保存程序文件的目录。在该目录下新建httpAndHttps.js文件,然后再新建pem和public这2个文件夹,将生成的自签名证书和私钥2个文件拷贝到pem文件夹下(如何生成自签名证书);public文件夹是用于发布的目录,可以在里面随便放一些文件用于测试。
然后在httpAndHttps.js中代码如下(注意192.168.1.2
是我的本地IP地址):
// 引入所需的各个模块
var http = require('http');
var https = require('https');
var fs = require('fs'); // 用于读取证书
var express = require('express');
var serve_index = require('serve-index');
// 定义一个express对象,用于web服务
var app = express();
// 发布静态目录,静态目录是当前路径下的public文件夹
app.use(serve_index('./public', {'icons': true}));
app.use(express.static('./public'));
// http服务
var http_server = http.createServer(app);
http_server.listen(8080,'192.168.1.2');
// https服务
// 读取证书
var options = {
key : fs.readFileSync('./pem/private_key.pem'),
cert : fs.readFileSync('./pem/cacert.pem')
};
var https_server = https.createServer(options,app);
https_server.listen(8081,'192.168.1.2');
在终端启动nodejs服务:
node httpAndHttps.js
然后在浏览器地址栏分别输入http://192.168.1.2:8080
和https://192.168.1.2:8081
进行http和https访问,就可以直接浏览public文件夹下的文件(可以直接在浏览器打开文件夹下的文件进行浏览)。


网友评论