nodejs 写静态服务器(新)
大家都是知道nodejs是用前端的语言去写后端的东西,那么如何用nodejs去搭建一个简单的静态web服务器呢?(相较于前一版,更为简单)
- 首先要建立一个项目的基本框架(model为自定义的模块 node_modules为依赖包 static为静态网页的项目源文件 app.js为入口js文件)
然后进行项目的初始化 (生成了 package.json文件 包含npm包的所有信息)
cnpm init
下一步去写服务器的各个模块
//app.js
//定义了服务器http模块 去server.js中具体写服务器代码(模块化的引用)
const http = require(“http”);
let server=require(“./model/server”);
http.createServer(server).listen(8100, “localhost”, () => {//端口号为8100 localhost为标准主机名console.log("127.0.0.1:8100");//本地的IP
});
//server.js 在model文件夹中
//导入url模块 fs模块 path模块
const url = require(“url”);
const fs = require(“fs”);
const pathmodule = require(“path”);
// 一个文件包 包括了大部分的格式和对应的后缀名
let mime = require(“./mime.json”);
//暴露方法 req为发出值 res为返回值
module.exports = (req, res) => {let path = url.parse(req.url);
let pathname = path.pathname;
// 剔除对favicon.ico 的请求 页面标签的小图标(百度搜了一下 具体叫网站头像)
if (pathname != "/favicon.ico") {
//加载首页 当/ 时即为首页
if (pathname == "/") {
pathname = "index.html";
}
let hame = pathmodule.extname(pathname);
let extname = mime[hame];//取出文件的格式名
res.writeHead(200, {//对不同的文件 写不同的请求头 实现全文件类型的读取
"Content-Type": `${extname};charset=utf-8`
});
// 读文件
fs.readFile("static/" + pathname, (err, data) => {
if (err) {
throw err;
}
//写文件
res.write(data);
res.end();
});
}
}
最后是mine.json文件 在model文件夹中
https://www.npmjs.com/package/mime.json 可以去安装下载 就是那个index.json文件其实
大功告成
还没有评论,来说两句吧...