针对“node.js中的http.createServer方法使用说明”的完整攻略,以下是具体的讲解。
简介
在Node.js中,http.createServer()
是一个创建HTTP服务器实例的方法。当执行该方法时,我们将得到一个Server对象,这个对象可以监听指定的端口来处理HTTP请求。
语法
该方法的语法如下:
http.createServer([requestListener]);
参数说明:
- requestListener
:可选参数,一个回调函数,用于处理HTTP请求。也可以使用req.on('request', callback)
的方式来处理请求。
示例1:最简单的创建HTTP服务器
在这个示例中,我们将看到最简单的使用http.createServer()
方法的示例代码:
const http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(3000);
console.log('Server running at http://localhost:3000/');
如上所示,我们通过调用http.createServer()
方法创建了一个HTTP服务器实例,并指定其请求处理函数。请求处理函数包含两个参数:req
(代表HTTP请求对象)和res
(代表HTTP响应对象)。在这个示例中,我们基于res
对象将“Hello World”这个文本响应返回给客户端,内容类型使用的是text/plain
。接下来将监听3000端口来处理HTTP请求。
示例2:处理静态文件
在这个示例中,我们将看到将静态文件映射到HTTP路径的示例代码。为了完成这个任务,我们需要使用fs
模块读取文件,并使用mime
模块获取文件内容类型。
const http = require('http');
const fs = require('fs');
const path = require('path');
const mime = require('mime');
const server = http.createServer((req, res) => {
let filePath = '.' + req.url;
if (filePath == './') {
filePath = './index.html';
}
const contentType = mime.getType(path.extname(filePath)) || 'text/plain';
fs.readFile(filePath, function(error, content) {
if (error) {
if(error.code == 'ENOENT'){
res.writeHead(404, {'Content-Type': 'text/plain'});
res.end('Page not found\n');
}
else {
res.writeHead(500, {'Content-Type': 'text/plain'});
res.end('Sorry, internal error\n');
}
}
else {
res.writeHead(200, { 'Content-Type': contentType });
res.end(content, 'utf-8');
}
});
});
server.listen(3000);
console.log('Server running at http://localhost:3000/');
这个示例中的服务器实现了请求处理函数,并根据请求的路径获取到文件路径。如果路径没有提供文件扩展名,我们会默认给它添加.html
扩展名。然后我们使用fs.readFile
读取文件并将其传递给浏览器进行显示。在404
和出错的时候,我们向浏览器返回404
和500
的状态码。
以上就是Node.js中的http.createServer()
方法使用说明的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node.js中的http.createServer方法使用说明 - Python技术站