node.js 核心http模块,起一个服务器,返回一个页面的实例
如下所示:
let http=require("http"); //引入核心http模块
let fs=require("fs");
let mime={
'.js':'application/javascript',
'.css':'text/css'
}
//创建一个函数,req代表客户端,res代表服务器可写流
let listener=(req,res)=>{
//res是可写流,有write和end
if(req.url==="/"){
//设置编码
res.setHeader('Content-Type','text/html;charset=utf-8');
fs.createReadStream('index.html').pipe(res);
}else{
if(fs.existsSync(`.${req.url}`)) {
res.setHeader('Content-Type',mime[req.url.match(/\.\w+$/)[0]] +';charset=utf-8');
fs.createReadStream(`.${req.url}`).pipe(res);
}else{
res.statusCode=404;
res.end();
}
}
}
let port=8080;
//创建一个服务,放入一个监听函数,
let server=http.createServer(listener);
//
server.listen(port,function () {
//启动成功后
console.log(`start${port}`);
})
看上面代码,我们需要先创建三个文件
index.html
index.css
index.js
html文件里面,我们要引进css和js文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--服务端引用路径不支持相对路径--> <link rel="stylesheet" href="index.css" rel="external nofollow" > <script src="index.js"></script> </head> <body> <div>你好,帅吗</div> </body> </html>
我们运行上面js文件时候,就会创建一个静态服务器,端口8080
然后返回客户端一个index.html文件
浏览器渲染这个html文件,我们对应的css和js就加载进去了
其实上面写法不是很简便,node里面有模块解决路径获取后缀名的问题,还有路径问题
let http=require("http"); //引入核心http模块
let fs=require("fs");
let mime=require("mime"); //解决文件类型
let url=require("url");
//创建一个函数,req代表客户端,res代表服务器可写流
let listener=(req,res)=>{
//res是可写流,有write和end
let {query,pathname}=url.parse(req.url,true);
if(pathname==="/"){
//设置编码
res.setHeader('Content-Type','text/html;charset=utf-8');
fs.createReadStream('index.html').pipe(res);
}else{
if(fs.existsSync(`.${pathname}`)) {
//mime 第三方包 npm install mime --save
//mime.lookup可以通过文件路径后缀判断是什么类型的
res.setHeader('Content-Type', mime.lookup(pathname)+';charset=utf-8');
fs.createReadStream(`.${pathname}`).pipe(res);
}else{
res.statusCode=404;
res.end();
}
}
}
let port=8080;
//创建一个服务,放入一个监听函数,
let server=http.createServer(listener);
//
server.listen(port,function () {
//启动成功后
console.log(`start${port}`);
})
以上这篇node.js 核心http模块,起一个服务器,返回一个页面的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
这篇文章主要介绍了Vue+Node服务器查询Mongo数据库及页面数据传递操作,结合实例形式分析了node.js查询MongoDB数据库及vue前台页面渲染等相关操作技巧,需要的朋友可以参考下2019-12-12
基于Node.js + WebSocket打造即时聊天程序嗨聊
这篇文章主要介绍了基于Node.js + WebSocket打造即时聊天程序,有兴趣的可以了解一下。2016-11-11
nodejs使用PassThrough流进行数据传递合并示例详解
这篇文章主要为大家介绍了nodejs使用PassThrough流进行数据传递合并示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-09-09
NestJS核心概念之Middleware中间件创建使用示例
这篇文章主要为大家介绍了NestJS核心概念之Middleware中间件创建使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-08-08


最新评论