内置http模块
创建服务器:
createServer( (req, res) =>{}).listen(端口号,()=>{})
let http = require('http')
//创建服务器
http.createServer((req, res) => {
//req:接收浏览器的传的参数 请求
console.log(req.url);
//res:返回渲染内容 响应
res.writeHead(200,{"Content-type":"text/html;charset=utf-8"}) //让write加载html页面,兼容更多浏览器
res.write(renderHTML(req.url))
res.end("['12,3']") //写完要结束 必须是JSON字符串
}).listen(3000, () => {
console.log('start');
})
function renderHTML(url) {
switch (url) {
case '/abc':
return `
<html>
<div>哈哈哈</div>
</html>
`
default:
return `
<html>
<div>没找到,你说气人不</div>
</html>
`
}
}
练习
//renderHtml.js
function renderHTML(url) {
switch (url) {
case '/api':
return '{a:[a,b,c]}'
case '/ht':
return `
<html>
<div>
这是一个HTML页面
</div>
</html>
`
default:
return '啥也没找到'
}
}
module.exports = {
renderHTML
}
//server.js
let renderHTML = require('./module/renderHtml')
let httpServer = require('http')
httpServer.createServer((req, res) => {
res.writeHead(200,{"Content-type":"text/html;charset=utf-8"})
res.write(renderHTML.renderHTML(req.url))
res.end()
}).listen(3000, () => {
console.log('服务已开启');
})
内置url模块
url.parse():解析url,转为对象,可处理路径和参数
let renderHTML = require('./module/renderHtml')
let httpServer = require('http')
let url = require('url')
httpServer.createServer((req, res) => {
if (req.url === "/favicon.ico") {
return
}
let urlObject = url.parse(req.url, true) //解析url成对象 第二个参数,解析参数JSON,变成对象
console.log(urlObject);
// url.format() 对象转为url
let pathName = url.parse(req.url).pathname
let query = urlObject.query
console.log(query);
res.writeHead(200,{"Content-type":"text/html;charset=utf-8"})
res.write(renderHTML.renderHTML(pathName))
res.end()
}).listen(3000, () => {
console.log('服务已开启');
})