方法说明:
该方法属于http模块,使用前需要引入http模块(var http= require(“http”) )
使用该函数用来创建一个HTTP服务器,并将 requestListener 作为 request 事件的监听函数。
语法:
http.createServer([requestListener])
接收参数:
requestListener 请求处理函数,自动添加到 request 事件,函数传递两个参数:
req 请求对象,想知道req有哪些属性,可以查看 “http.request 属性整合”。
res 响应对象 ,收到请求后要做出的响应。想知道res有哪些属性,可以查看 “http.response属性整合”。
基本实现:
例子中res指定了响应头,响应体内容为node.js,用end结束。
const http = require('http');
var server = http.createServer(function (req, res) {
if (req.url == "/") {
res.writeHead(200, {'Content-type': 'text/html'});
res.write('<h1>Node.js</h1>');
res.end('<p>Hello World</p>');
}
});
server.listen('8080', function () {
console.log((new Date()) + ' Server is listening on port 8080', 8080);
});
源码如下
exports.createServer = function(requestListener) {
return new Server(requestListener);
};
解析GET方法参数
var http = require("http");
var querystring = require("querystring");
const url = require('url');
var server = http.createServer(function (req, res) {
var urlObj = url.parse(req.url);
var query = urlObj.query;
var queryObj = querystring.parse(query);
res.write("Hello world!" + " " +JSON.stringify(queryObj));
res.end()
});
server.listen(5678);
解析POST方法参数
var http = require("http");
var server = http.createServer(function (req, res) {
if (req.url == "/") {
req.on(‘data‘, function (chunk) {
body += chunk;
});
req.on(‘end‘, function () {
body = JSON.parse(body);
res.end("Hello world!" + " " +body.user);
});
}
});
server.listen(8000);