正如上一节所说的,怎么开启http服务并且根据不同的路径返回不同的内容。
最原始的做法就是在监听函数【 server.on() 】。
server.on('request', function(request,response){})
里面进行判断。第二个参数是一个回调函数,当server.on()函数被触发的时候,就会进入到里面的这个函数中.
关于返回内容的格式,使用最多的便是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);
}
})