首先说一下,我们平时在浏览器上访问网页,所看到的内容,其实是web服务器传过来的,比如我们访问www.baidu.com.当我们在浏览器地址栏输入之后,浏览器会发送请求到web服务器,然后web服务器根据请求所携带的信息,返回内容。

那么,nodejs中的http模块,就是用来搭建web服务器用的。

下面来简单的搭建一个服务器:

var http = require("http");

//request:是请求参数,携带这请求所带来的信息。response:是响应参数,携带者将要返回到浏览器的信息,这两个参数都是流的实例
var server = http.createServer(function(request,response){
console.log("request received");
//response的writeHead是写响应的头部信息的,第一个参数是状态码,第二个参数是一个对象,里面可以写一些返回到浏览器的信息,比如Content-Type:指定的是返回浏览器的是什么内容,比如图片、html、json、pdf、纯文本等
//浏览器会根据服务器返回的头信息,去想着如何渲染
response.writeHead(200,{"Content-Type":"text/plain"});//text/plain:代表传回的是纯文本
response.write("hello from out application");//将内容写在write的参数里,传回浏览器
response.end();//加一个end方法,表示响应结束了
}) //最后让服务器监听一个端口
server.listen(3000); console.log("server started on localhost port 3000");//加一个服务器启动起来的提示

然后在终端执行node app  将服务器运行起来

之后,在浏览器是输入localhost:3000  发现页面你上会出现,我们响应参数的write方法中的内容!!!

listen也可以传第二个参数,ip

返回给浏览器的内容也可以写在response的end方法里:

var http = require("http");

//request:是请求参数,携带这请求所带来的信息。response:是响应参数,携带者将要返回到浏览器的信息,这两个参数都是流的实例
var server = http.createServer(function(request,response){
console.log("request received");
//response的writeHead是写响应的头部信息的,第一个参数是状态码,第二个参数是一个对象,里面可以写一些返回到浏览器的信息,比如Content-Type:指定的是返回浏览器的是什么内容,比如图片、html、json、pdf、纯文本等
//浏览器会根据服务器返回的头信息,去想着如何渲染
response.writeHead(200,{"Content-Type":"text/plain"});//text/plain:代表传回的是纯文本
// response.write("hello from out application");//将内容写在write的参数里,传回浏览器
response.end("hello from out application");//加一个end方法,表示响应结束了
}) //最后让服务器监听一个端口
server.listen(3000,"127.0.0.1");//还可以加第二个参数 127.0.0.1代表的是本地 console.log("server started on localhost port 3000");//加一个服务器启动起来的提示

还有人将http.createServer中的函数抽出来,这样写:

var http = require("http");

//request:是请求参数,携带这请求所带来的信息。response:是响应参数,携带者将要返回到浏览器的信息,这两个参数都是流的实例
var onRequest = function(request,response){
console.log("request received");
//response的writeHead是写响应的头部信息的,第一个参数是状态码,第二个参数是一个对象,里面可以写一些返回到浏览器的信息,比如Content-Type:指定的是返回浏览器的是什么内容,比如图片、html、json、pdf、纯文本等
//浏览器会根据服务器返回的头信息,去想着如何渲染
response.writeHead(200,{"Content-Type":"text/plain"});//text/plain:代表传回的是纯文本
// response.write("hello from out application");//将内容写在write的参数里,传回浏览器
response.end("hello from out application");//加一个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");//加一个服务器启动起来的提示

万变不离其中

nodejs基础 用http模块 搭建一个简单的web服务器 响应纯文本的更多相关文章

  1. nodejs基础 用http模块 搭建一个简单的web服务器 响应JSON、html

    前端在开发中,大多会想浏览器获取json数据,下面来用nodejs中的http模块搭建一个返回json数据的服务器 var http = require("http"); var ...

  2. 利用 nodeJS 搭建一个简单的Web服务器(转)

    下面的代码演示如何利用 nodeJS 搭建一个简单的Web服务器: 1. 文件 WebServer.js: //-------------------------------------------- ...

  3. golang搭建一个简单的web服务器

    package main import ( "io/ioutil" "log" "net/http" ) func main() { htt ...

  4. 使用gitblit搭建一个简单的局域网服务器

    使用gitblit搭建一个简单的局域网服务器 1.使用背景 现在很多使用github管理代码,但是github需要互联网的支持,而且私有的git库需要收费.有一些项目的代码不能外泄,所以,搭建一个局域 ...

  5. 自己动手模拟开发一个简单的Web服务器

    开篇:每当我们将开发好的ASP.NET网站部署到IIS服务器中,在浏览器正常浏览页面时,可曾想过Web服务器是怎么工作的,其原理是什么?“纸上得来终觉浅,绝知此事要躬行”,于是我们自己模拟一个简单的W ...

  6. 一个简单的web服务器

    写在前面 新的一年了,新的开始,打算重新看一遍asp.net本质论这本书,再重新认识一下,查漏补缺,认认真真的过一遍. 一个简单的web服务器 首先需要引入命名空间: System.Net,关于网络编 ...

  7. 自己模拟的一个简单的web服务器

    首先我为大家推荐一本书:How Tomcat Works.这本书讲的很详细的,虽然实际开发中我们并不会自己去写一个tomcat,但是对于了解Tomcat是如何工作的还是很有必要的. Servlet容器 ...

  8. [置顶] 在Ubuntu下实现一个简单的Web服务器

    要求: 实现一个简单的Web服务器,当服务器启动时要读取配置文件的路径.如果浏览器请求的文件是可执行的则称为CGI程序,服务器并不是将这个文件发给浏览器,而是在服务器端执行这个程序,将它的标准输出发给 ...

  9. Tomcat剖析(一):一个简单的Web服务器

    Tomcat剖析(一):一个简单的Web服务器 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三):连接器 ...

随机推荐

  1. Idea 使用 Junit4 进行单元测试

    目录 Idea 使用 Junit4 进行单元测试 1. Junit4 依赖安装 2. 编写测试代码 3. 生成测试类 4. 运行 Idea 使用 Junit4 进行单元测试 1. Junit4 依赖安 ...

  2. sql注入测试(1)---概念概述

    在进行java web 测试时,经常会忽略的测试种类就是sql注入测试,这类缺陷造成的原因是开发技术在这方面欠缺的表现,虽然不常见,但一旦有这类缺陷,就很因此对运营的数据造成很多不必要的损失,所以,还 ...

  3. Docker启动Elasticsearch报错vm.max_map_count

    报错信息如下 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 临 ...

  4. VUE CLI3 less 全局变量引用

    方法一 1.添加依赖 style-resources-loader 2.vue.config.js中添加 module.exports = { pluginOptions: { 'style-reso ...

  5. ElasticSearch做实时OLAP框架~实时搜索、统计和OLAP需求,甚至可以作为NOSQL来使用(转)

    使用ElasticSearch作为大数据平台的实时OLAP框架 – lxw的大数据田地 http://lxw1234.com/archives/2015/12/588.htm 一直想找一个用于大数据平 ...

  6. leetcode-88. 合并两个有序数组 · Aaray

    题面 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 样例 1. 输入: nums1 = [1,2,3,0,0,0], m ...

  7. 当SAP云平台account的service Marke place里找不到Machine Learning服务该怎么办

    问题症状: 我在CloudFoundry环境的Service Market place里根本找不到Leonardo ML foundation这组服务. 解决方案: 进入global Account- ...

  8. X宝个人支付到账

    扫码登录,能看懂的我就不多说了,封了我多少篇文章了!!!!X宝个人到账通知.

  9. navicat远程连接mysql错误

    确保端口与服务正常. 如果都正常,那么服务有可能没有添加远程访问. 本人链接报错10060,那么问题出在阿里云的主机默认不开放3306端口,那么在安全组策略中加入对应的端口   登录后输入 use m ...

  10. Matplotlib介绍

    目录 一.    Matplotlib介绍    1 二.    初级绘制    1 1.    绘图简介    1 2.    在上面的过程中,主要就是下面三个元素:    1 三.    2D各种 ...