nodejs基础 用http模块 搭建一个简单的web服务器 响应JSON、html
前端在开发中,大多会想浏览器获取json数据,下面来用nodejs中的http模块搭建一个返回json数据的服务器
var http = require("http");
var onRequest = function(request,response){
console.log("request received");
response.writeHead(200,{"Content-Type":"application/json"});//application/json:代表响应的是json
// response.write("传回浏览器的内容");
var jsonObj={
name:"lili",
job:"coder",
age:18
}
response.end(JSON.stringify(jsonObj));//将json传回浏览器
}
var server = http.createServer(onRequest);
//最后让服务器监听一个端口
server.listen(3000,"127.0.0.1");//还可以加第二个参数 127.0.0.1代表的是本地
console.log("server started on localhost port 3000");//加一个服务器启动起来的提示
然后运行 node app 启动服务器
在浏览器访问localhost:3000 发现浏览器会显示 响应的json数据
如果浏览器的json数据没有 格式化 我们需要装一个浏览器插件 JSON Formatter 安装过之后,显示的json数据就是格式化的
下面来创建一个响应html的web服务器:将Content-type的值改成text/html就行
var http = require("http");
var onRequest = function(request,response){
console.log("request received");
response.writeHead(200,{"Content-Type":"text/html"});//application/json:代表响应的是json
// response.write("传回浏览器的内容");
var htmlFile = `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>html</title>
<style>
div{
color:red;
font-size:50px;
}
</style>
</head>
<body>
<div>我是从服务器传回来的html页面</div>
</body>
</html>`;
response.end(htmlFile);//将json传回浏览器
}
var server = http.createServer(onRequest);
//最后让服务器监听一个端口
server.listen(3000,"127.0.0.1");//还可以加第二个参数 127.0.0.1代表的是本地
console.log("server started on localhost port 3000");//加一个服务器启动起来的提示
然后启动服务器 页面访问localhost:3000 发现会出现html页面样式什么的都有!!!
但是这样 将html代码这样写在代码中 显的太粗暴了,我们可以将html页面写在一个文件中,然后用读取流读取过来
var http = require("http");
var fs = require("fs");
var onRequest = function(request,response){
console.log("request received");
response.writeHead(200,{"Content-Type":"text/html"});
// response.write("传回浏览器的内容");
var myReadStream = fs.createReadStream(__dirname+"/index.html","utf8");//用读取流,读取其它文件内的html内容
myReadStream.pipe(response);//将流读取到的内容写在响应中 注意这样不需要用写在response.end()中了
}
var server = http.createServer(onRequest);
//最后让服务器监听一个端口
server.listen(3000,"127.0.0.1");//还可以加第二个参数 127.0.0.1代表的是本地
console.log("server started on localhost port 3000");//加一个服务器启动起来的提示
app.js是项目的入口,如果把代码都写在其中,越写月臃肿,我们可以用模块化的思想,来整理一下我们的代码,我们可以将这个服务器相关的代码单独写在一个文件中,然后用require引入到app.js入口文件中执行:
我们创建一个server.js文件:
var http = require("http");
var fs = require("fs");
var startServer = function(){
var onRequest = function(request,response){
console.log("request received");
response.writeHead(200,{"Content-Type":"text/html"});//application/json:代表响应的是json
// response.write("传回浏览器的内容");
var myReadStream = fs.createReadStream(__dirname+"/index.html","utf8");//用读取流,读取其它文件内的html内容
myReadStream.pipe(response);//将流读取到的内容写在响应中 注意这样不需要用写在response.end()中了
}
var server = http.createServer(onRequest);
//最后让服务器监听一个端口
server.listen(3000,"127.0.0.1");//还可以加第二个参数 127.0.0.1代表的是本地
console.log("server started on localhost port 3000");//加一个服务器启动起来的提示
}
module.exports.startServer=startServer;
然后在app.js中引入
var server = require("./server");
server.startServer();
这样看着app.js就干净了许多
这就是模块化的思想,也可以称为重构。。。
nodejs基础 用http模块 搭建一个简单的web服务器 响应JSON、html的更多相关文章
- nodejs基础 用http模块 搭建一个简单的web服务器 响应纯文本
首先说一下,我们平时在浏览器上访问网页,所看到的内容,其实是web服务器传过来的,比如我们访问www.baidu.com.当我们在浏览器地址栏输入之后,浏览器会发送请求到web服务器,然后web服务器 ...
- 利用 nodeJS 搭建一个简单的Web服务器(转)
下面的代码演示如何利用 nodeJS 搭建一个简单的Web服务器: 1. 文件 WebServer.js: //-------------------------------------------- ...
- golang搭建一个简单的web服务器
package main import ( "io/ioutil" "log" "net/http" ) func main() { htt ...
- 使用gitblit搭建一个简单的局域网服务器
使用gitblit搭建一个简单的局域网服务器 1.使用背景 现在很多使用github管理代码,但是github需要互联网的支持,而且私有的git库需要收费.有一些项目的代码不能外泄,所以,搭建一个局域 ...
- 自己动手模拟开发一个简单的Web服务器
开篇:每当我们将开发好的ASP.NET网站部署到IIS服务器中,在浏览器正常浏览页面时,可曾想过Web服务器是怎么工作的,其原理是什么?“纸上得来终觉浅,绝知此事要躬行”,于是我们自己模拟一个简单的W ...
- 一个简单的web服务器
写在前面 新的一年了,新的开始,打算重新看一遍asp.net本质论这本书,再重新认识一下,查漏补缺,认认真真的过一遍. 一个简单的web服务器 首先需要引入命名空间: System.Net,关于网络编 ...
- 自己模拟的一个简单的web服务器
首先我为大家推荐一本书:How Tomcat Works.这本书讲的很详细的,虽然实际开发中我们并不会自己去写一个tomcat,但是对于了解Tomcat是如何工作的还是很有必要的. Servlet容器 ...
- [置顶] 在Ubuntu下实现一个简单的Web服务器
要求: 实现一个简单的Web服务器,当服务器启动时要读取配置文件的路径.如果浏览器请求的文件是可执行的则称为CGI程序,服务器并不是将这个文件发给浏览器,而是在服务器端执行这个程序,将它的标准输出发给 ...
- Tomcat剖析(一):一个简单的Web服务器
Tomcat剖析(一):一个简单的Web服务器 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三):连接器 ...
随机推荐
- 不遮挡人物弹幕是怎么实现的——图片蒙版效果-webkit-mask
这是一个实验中的功能,用于设置元素上遮罩层的图像. 一.Values none:默认值,透明的黑色图像层,也就是没有遮罩层. <mask-source>:<mask>或CSS图 ...
- (十三)使用handler实现登录验证
一.Handel概念 J2EE Web 服务中的Handler技术特点非常像Servlet技术中的Filter.我们知道,在Servlet中,当一个HTTP到达服务端时,往往要经过多个Filter对请 ...
- JVM学习笔记——字节码指令
JVM学习笔记——字节码指令 字节码 0与 1是计算机仅能识别的信号,经过0和1的不同组合产生了数字之上的操作.另外,通过不同的组合亦产生了各种字符.同样,可以通过不同的组合产生不同的机器指令.在不同 ...
- Flutter自定义绘制(1)- 绘制基础
CustomPainter Flutter 中实现绘制的主要是CustomPainter类. 我们一般继承这个类,来使用它: class MyPainter extends CustomPainter ...
- Windows服务 + Quartz.NET
服务基础 安装管理员打开cmd cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 InstallUtil.exe Path_WinSvc.exe 或者 ...
- prometheus 配置项注意事项
1.job:metrics_path 如果是静态模式下配置job(statics),直接配置job的metrics_path选项是不生效的.需要同时在exporter端指定metrics_path.如 ...
- [Selenium3+python3.6]自动化测试1-安装
参考文档: http://www.cnblogs.com/yoyoketang/p/6123890.html 安装环境: win7+Py3.6 +FF45 (ESR version) +seleniu ...
- devops发展历程
第一阶段:只有 Dev ,没有 Ops ,Dev 是全栈工程师 如何理解?最初的时候,产品和业务形态都处于摸索期,业务复杂度不高,访问量不大,软件能够尽快跑起来推向市场是最重要的,所以架构上不设计的很 ...
- Java基础-异常处理机制 及异常处理的五个关键字:try/catch/finally/throw /throws
笔记: /** 异常处理机制: 抓抛模型 * 1."抛", 一旦抛出,程序终止! printStackTrace()显示异常路径! * 2."抓", 抓住异常 ...
- ZZNUOJ-2157: 水滴来袭-【干扰阅读-卡模糊精度1e-8的问题】
ZZNUOJ-2157: 水滴来袭 那是一个冷雨霏霏的秋天的下午,当罗辑拿着枪威胁三体文明的时候,如果过了三十秒三体人还没有同他展开谈判,罗辑就会扣动扳机即刻结束自己的生命,随后他身上的核弹控制器就会 ...