最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

node.js 核心http模块,起一个服务器,返回一个页面的实例

来源:动视网 责编:小采 时间:2020-11-27 22:30:35
文档

node.js 核心http模块,起一个服务器,返回一个页面的实例

node.js 核心http模块,起一个服务器,返回一个页面的实例:如下所示: let http=require(http); //引入核心http模块 let fs=require(fs); let mime={ '.js':'application/javascript', '.css':'text/css' } //创建一个函数,req代表客户端,res代表服务器可写流 let listener=
推荐度:
导读node.js 核心http模块,起一个服务器,返回一个页面的实例:如下所示: let http=require(http); //引入核心http模块 let fs=require(fs); let mime={ '.js':'application/javascript', '.css':'text/css' } //创建一个函数,req代表客户端,res代表服务器可写流 let listener=


如下所示:

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模块,起一个服务器,返回一个页面的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

文档

node.js 核心http模块,起一个服务器,返回一个页面的实例

node.js 核心http模块,起一个服务器,返回一个页面的实例:如下所示: let http=require(http); //引入核心http模块 let fs=require(fs); let mime={ '.js':'application/javascript', '.css':'text/css' } //创建一个函数,req代表客户端,res代表服务器可写流 let listener=
推荐度:
标签: js node.js Nodejs
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top