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

首先说一下,我们平时在浏览器上访问网页,所看到的内容,其实是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");//加一个服务器启动起来的提示

万变不离其中