一旦包含http模块,它将创建一个侦听特定端口的服务器(在此示例中为8080)。 http.creatServer方法创建实际的http服务器,该服务器接受一个函数(在客户端尝试访问应用程序时调用)作为参数。
http.createServer(function(req,res){
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World!');
}).listen(8080);
http.createServer中的函数有两个参数:req(request)和res(response)。 req参数是来自用户或客户端的请求,res参数向客户端发送回复。
res.writeHead(200, { 'Content-Type': 'text/plain' }); #这是响应HTTP标头
res.end('Hello World!');
一旦服务器启动,代码的最后部分就会将输出发送到控制台。
console.log('Server started on localhost:8080; press Ctrl-C to terminate...!');
Node.js中的路由
在本节中,我将解释Node.js编程中称为路由的最重要概念之一(与计算机网络下的路由相似:在网络中查找路径的过程)。
这里,路由是一种处理客户端请求的技术; 提供客户端请求的内容,如URL中所指定。 URL由路径和查询字符串组成。
要查看客户端的请求查询字符串,我们可以在响应中添加以下行。
res.write(req.url);
res.end()
以下是新代码。
var http = require('http');
http.createServer(function(req,res){
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write(req.url);
res.end();
}).listen(8080);
console.log('Server started on localhost:8080; press Ctrl-C to terminate...!');
使用以下命令保存文件并再次启动应用程序。
$ node server.js
或者
$ npm start
在Web浏览器中输入不同的URL,如下所示。
查看客户的应用程序请求
现在,我们将为Linux公社创建一个非常小的网站,其中包含主页,关于和作者页面。 我们将在这些页面上显示一些信息。
打开server.js文件进行编辑,并在其中添加下面的代码。
//include http module
var http = require('http');
http.createServer(function(req,res){
//store URL in variable q_string
var q_string = req.url;
switch(q_string) {
case '/':
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('欢迎光临!')
res.end();
break;
case '/aboutus':
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('关于Linux公社');
res.write('\n\n');
res.write('Linux公社()是专业的Linux系统门户网站!');
res.write('\n');
res.end('了解更多: https://www.linuxidc.com/aboutus.htm');
break;
case '/contactus:
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('联系我们');
res.write('\n\n');
res.end('联系我们: https://www.linuxidc.com/contactus.htm');
break;
default:
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end('Not Found');
break;
}
}).listen(1688);
console.log('Server started on localhost:1688; press Ctrl-C to terminate....');
总结
Node.js在今天达到了新的高度,它使得全栈开发比以前容易多了。事件驱动编程的独特哲学使您能够快速、高效和可伸缩地创建web流程和服务器。