使用node.js创建简易服务器,让本地HTML页面可以通过localhost访问
1、使用到的模块
- http:是node.js内置的模块,可用于搭建服务端 var http=require(“http”)
- fs:是node.js内置的模块,用于实现文件相关的,读取、写入啊之类的等等等等var fs=require(“fs”)
2、简易的代码实现
在本地的项目根目录下新建server.js。其内容如下:
var http=require("http");
var fs=require("fs");
//创建web服务器
var server = http.createServer();
/*提供数据服务,注册request请求事件,当客户端请求,自动执行回调函数*/
/*request 请求对象,获取客户端的一些请求信息*/
/*response 响应对象,给客户端发送响应消息*/
server.on('request', function (request, response) {
//response使用Write来向客户端发送数据,但是一定要用end来结束响应数据
var pathname = request.url.slice(1); // request.url 返回的是/index.html
// 读取文件内容
fs.readFile(pathname, function (err, data) {
if (err) {
// 读取失败了
} else {
// 将读取到的内容返回
response.setHeader('content-type', 'text/html;charset=utf-8'); //这个很重要,设置编码方式是utf-8
response.write(data.toString());
}
response.end();
});
});
//绑定端口号启动服务器
server.listen(6060, function () {
console.log('服务器启动成功,可以通过"http://127.0.0.1:6060/"来进行访问');
});
3、使用
现在简易的服务器已经搭起来了,在命令行执行 node server.js,在浏览器中访问127.0.0.1:6060/test.html 即可显示test页面内容
4、手机上访问
直接listen(端口号,IP地址即可)
// 填上端口号和自己的IP地址就行了
server.listen(6060, function () {
console.log('服务器启动成功,可以通过"http://127.0.0.1:6060/"来进行访问');
});
5、readFile()
readFile(),读取文件。
参数分别是:
- 文件的路径;
- 文件读取格式(文本文件和二进制文件)这个参数不写时,默认读取为二进制文件;
- 回调函数
6、自动打开浏览器
如何设置,在运行 node index.js 命令后会自动打开浏览器并访问首页?
需要再安装一个opn库,可以打开项网站、文件、可执行文件之类的功能
步骤:
1、npm install opn,若已有这个库,则忽略此步骤
var opn = require('opn');
server.listen(6060, function () {
console.log('服务器启动成功,可以通过"http://127.0.0.1:6060/"来进行访问');
opn('http://127.0.0.1:6060/index.html');
});
2、在命令行执行node index.js 即可自动打开默认浏览器