NodeJS(4)不同路径不同返回
2024-12-29 00:00:54  阅读数 426

正如上一节所说的,怎么开启http服务并且根据不同的路径返回不同的内容。

最原始的做法就是在监听函数【 server.on() 】。
server.on('request', function(request,response){})
里面进行判断。第二个参数是一个回调函数,当server.on()函数被触发的时候,就会进入到里面的这个函数中.

  • 第一个参数request是请求头的参数组成的对象。request.url就是请求路径。
  • 第二个参数response.end() 就会发送里面的数据。
  • JSON.parse("");将字符串类型的数据转换成数组
  • JSON.stringify([]);将数组类型的数据转换成字符串

关于返回内容的格式,使用最多的便是json格式的,简单来说就是将一个Object转换成字符串格式进行传输。关于json格式有不清楚的,下面有几个链接可以看一下:
【1】https://baike.baidu.com/item/JSON/2462549?fr=aladdin
【2】https://www.w3school.com.cn/js/js_json_intro.asp
【3】https://www.runoob.com/json/json-syntax.html

var http = require('http');

var server = http.createServer();

server.on('request',function(request,response){
    console.log("收到请求了!\n请求路径为:" + request.url);
    // response.write("hello node!");
    // response.end();
    // response.end("hello nodejs!");

    // var url = request.url;
    // if(url == '/'){
    //     response.end("index page!");
    // }
    // else if(url == '/login'){
    //     response.end("login page!");
    // }else{
    //     response.end("404 not found!");
    // }
    var url = request.url;
    if(url == '/products'){
        var products = [
            {
                id:1,
                name:"apple",
                price:111
            },
            {
                id:2,
                name:"orange",
                price:222
            },
            {
                id:3,
                name:"banana",
                price:333
            }
        ];
        // end的参数只能是string和二进制数据
        // 传json类型的数据可以用JSON.stringify()

        // JSON.parse("");将字符串类型的数据转换成数组
        // JSON.stringify([]);将数组类型的数据转换成字符串
        response.end(JSON.stringify(products));
    }else{
        response.end("404 Not Found!");
    }
})

server.listen(3000,function(err){
    if(!err){
        console.log('服务器建立成功!访问路径为:"http://localhost:3000/"');
    }else{
        console.log("ERROR: " + err);
    }
})