node js搭建一个简单的 web服务器

第一步

引入 http 核心模块 : var http = require(http)

第二步 使用 http.createServer() 方法创建一个 web 服务器 返回一个 Server 实例

**var server = http.createServer()**

第三步 注册 request 请求事件

request 请求事件处理函数,需要接受两个参数
		req 请求对象:
			请求对象可以获取客户端的请求信息,列如路径请求(返回客户端请求的 URL)
		res 响应对象
			响应对象可以给客户端发一些响应消息(res.end(这里面写给客户端响应的数据))
			res 对象有一个方法:write 可以用来给客户端发送一些响应数据
			res.write(<head><meta charset="utf-8"/></head>);防止页面上乱码
server.on(request,function(req,res){
          
   
 // res 对象有一个方法:write 可以用来给客户端发送一些响应数据
    // write 可以使用多次,但是使用后面一定要用 end 来结束响应,否则客户端会一直等待(页面上不显示请求的消息)
    // res.write(<head><meta charset="utf-8"/></head>);防止乱码
    console.log(收到客户端的请求,请求路径是:+req.url)
     res.write(<head><meta charset="utf-8"/></head>);
     res.write(初始数据)
       // 告诉客户端,话说完了可以传递给用户了(显示在页面上)
       res.end()
})

第四部 绑定端口号,启动服务器 代码里面绑定的端口号是 3000 就直接用 http://127.0.0.1:3000/ 获取 localhost:3000 来访问

server.listen(3000,function(){
          
   
    console.log(成功可以通过 http://127.0.0.1:3000/ 来访问); 
})

下面是完整的代码 里面只是多了一个 URL客户端输入的路径判断响应不同的数据

/**
 * 搭建一个简单的 web 服务器
 */

//  映入 http 核心模块
var http = require(http)



// 2.使用 http.createServer() 方法创建一个 web 服务器
//    返回一个 Server 实例
var server = http.createServer()


//3.注册 request 请求事件
/**
 * request 请求事件处理函数,需要接受两个参数
 *    req 请求对象:
 *       请求对象可以获取客服端的一些请求信息,例如路径请求(返回客户端请求的 URL)
 *    res 响应对象
 *       响应对可以用来给客户端发送响应消息       
 */

//函数里的参数可以自己定义参数 function(**,**) 
server.on(request,function(req,res){
          
   
    console.log(收到客户端的请求,请求路径是:+req.url)


    // res 对象有一个方法:write 可以用来给客户端发送一些响应数据
    // write 可以使用多次,但是使用后面一定要用 end 来结束响应,否则客户端会一直等待(页面上不显示请求的消息)
    // res.write(<head><meta charset="utf-8"/></head>);防止乱码
    
   /* 
    *  res.write(<head><meta charset="utf-8"/></head>);
    *  res.write(初始数据)
    *   // 告诉客户端,话说完了可以传递给用户了(显示在页面上)
    *   res.end()
    */
    


    /*
     * 用 req.url 获取到服务器的请求就进行判断
     *      如果客户端输入的路径请求等于 goods 就显示商品数据
     */
    let url = req.url;
    if(url === /goods){
          
   
        let products  = [
            {
          
   
                name: 橘子,
                price:20
            },
            {
          
   
                name: 香蕉,
                price:20
            }
        ]
        // res.end 只能识别 字符串,和二进制数字,所以用 JSON.stringify 转换成字符创数组
        res.end(JSON.stringify(products))
    } else{
          
   
        res.write(<head><meta charset="utf-8"/></head>);
        res.write(初始数据)
    // 告诉客户端,话说完了可以传递给用户了(显示在页面上)
    res.end()
    }
})



//4.绑定端口号,启动服务器
server.listen(3000,function(){
          
   
    console.log(成功可以通过 http://127.0.0.1:3000/ 来访问); 
})
经验分享 程序员 微信小程序 职场和发展