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


Posted in Javascript onSeptember 11, 2017

如下所示:

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

Javascript 相关文章推荐
获取网站跟路径的javascript代码(站点及虚拟目录)
Oct 20 Javascript
用jquery实现自定义风格的滑动条实现代码
Apr 26 Javascript
jquery 页面滚动到指定DIV实现代码
Sep 25 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
Mar 05 Javascript
简单理解vue中Props属性
Oct 27 Javascript
JS实战篇之收缩菜单表单布局
Dec 10 Javascript
利用ES6语法重构React组件详解
Mar 02 Javascript
在HTML文档中嵌入JavaScript的四种方法
May 07 Javascript
vue中v-model的应用及使用详解
Jun 27 Javascript
Vue+axios实现统一接口管理的方法
Jul 23 Javascript
详解vue引入子组件方法
Feb 12 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
May 16 Javascript
简单谈谈JS中的正则表达式
Sep 11 #Javascript
详解Vue双向数据绑定原理解析
Sep 11 #Javascript
基于DOM节点删除之empty和remove的区别(详解)
Sep 11 #Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
Sep 11 #Javascript
基于bootstrop常用类总结(推荐)
Sep 11 #Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
Sep 10 #jQuery
利用纯js + transition动画实现移动端web轮播图详解
Sep 10 #Javascript
You might like
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
TopList标签和JavaScript结合两例
2007/08/12 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
js对象数组和对象的使用实例详解
2019/08/27 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
简单了解常用的JavaScript 库
2020/07/16 Javascript
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
Python重新引入被覆盖的自带function
2014/07/16 Python
Python多线程编程简单介绍
2015/04/13 Python
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
批量将ppt转换为pdf的Python代码 只要27行!
2018/02/26 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
2019/07/05 Python
结合OpenCV与TensorFlow进行人脸识别的实现
2019/10/10 Python
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
京东国际站:JOYBUY
2017/11/23 全球购物
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
艺术应用与设计专业个人的自我评价
2013/11/19 职场文书
毕业生的自我评价分享
2013/12/18 职场文书
遥感技术与仪器求职信
2014/02/22 职场文书
政风行风建设责任书
2014/07/23 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android