这是一个简单的 HTTP web 服务器的示例:
const http = require('http')
const port = 3000
const server = http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'text/plain')
res.end('你好世界\n')
})
server.listen(port, () => {
console.log(`服务器运行在 http://${hostname}:${port}/`)
})
简要分析一下。 这里引入了 http
模块。
使用该模块来创建 HTTP 服务器。
服务器被设置为在指定的 3000
端口上进行监听。 当服务器就绪时,则 listen
回调函数会被调用。
传入的回调函数会在每次接收到请求时被执行。 每当接收到新的请求时,request
事件会被调用,并提供两个对象:一个请求(http.IncomingMessage
对象)和一个响应(http.ServerResponse
对象)。
request
提供了请求的详细信息。 通过它可以访问请求头和请求的数据。
response
用于构造要返回给客户端的数据。
在此示例中:
res.statusCode = 200
设置 statusCode 属性为 200,以表明响应成功。
还设置了 Content-Type 响应头:
res.setHeader('Content-Type', 'text/plain')
最后结束并关闭响应,将内容作为参数添加到 end():
res.end('你好世界\n')
执行 GET 请求
const https = require('https')
const options = {
hostname: 'nodejs.cn',
port: 443,
path: '/todos',
method: 'GET'
}
const req = https.request(options, res => {
console.log(`状态码: ${res.statusCode}`)
res.on('data', d => {
process.stdout.write(d)
})
})
req.on('error', error => {
console.error(error)
})
req.end()
执行 POST 请求
const https = require('https')
const data = JSON.stringify({
todo: '做点事情'
})
const options = {
hostname: 'nodejs.cn',
port: 443,
path: '/todos',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': data.length
}
}
const req = https.request(options, res => {
console.log(`状态码: ${res.statusCode}`)
res.on('data', d => {
process.stdout.write(d)
})
})
req.on('error', error => {
console.error(error)
})
req.write(data)
req.end()
PUT 和 DELETE
PUT 和 DELETE 请求使用相同的 POST 请求格式,只需更改 options.method 的值即可。
文章来源 node中文官方 http://nodejs.cn/
更多知识点 请关注:笔墨是小舟