Node.js 网络服务器
什么是 Node.js?
Node.js 是一个开源服务器环境。 Node.js 在服务器上使用 JavaScript。 Web 服务器的任务是打开服务器上的文件并将内容返回给客户端。
Node.js 有一个名为 HTTP 的内置模块,它允许 Node.js 通过超文本传输协议 (HTTP) 传输数据。 HTTP 模块可以创建一个 HTTP 服务器来侦听服务器端口并将响应返回给客户端。
例子:
// Import the Node.js http module
var http = require('http');
// req is the request object which is
// coming from the client side
// res is the response object which is going
// to client as response from the server
// Create a server object
http.createServer(function (req, res) {
// 200 is the status code which means
// All OK and the second argument is
// the object of response header.
res.writeHead(200, {'Content-Type': 'text/html'});
// Write a response to the client
res.write('Congrats you have a created a web server');
// End the response
res.end();
}).listen(8081); // Server object listens on port 8081
console.log('Node.js web server at port 8081 is running..')
当客户端访问 url http://localhost:8081时,将执行在http.createServer()中传递的函数。
运行代码的步骤:
- 将上面的代码保存在扩展名为.js的文件中
- 打开命令提示符并使用cd命令转到文件所在的文件夹。
- 运行命令node file_name .js
- 打开浏览器并转到 url http://localhost:8081
在浏览器中打开 http://localhost:8081 时。
http.createServer()方法包括请求对象,可用于获取有关当前 HTTP 请求的信息,例如 url、请求标头和数据。
以下示例演示了在 Node.js 中处理 HTTP 请求和响应。
// Import Node.js core module i.e http
var http = require('http');
// Create web server
var server = http.createServer(function (req, res) {
// Check the URL of the current request
if (req.url == '/') {
// Set response header
res.writeHead(200, { 'Content-Type': 'text/html' });
// Set response content
res.write(
`
GeeksforGeeks Home Page
A computer science portal
`);
res.end();//end the response
}
else if (req.url == "/webtech") {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(`
Welcome to GeeksforGeeks
Read Web Technology content
`);
res.end();//end the response
}
else if (req.url == "/DS") {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(`
GeeksforGeeks
Read Data Structures Content
`);
res.end(); //end the response
}
else if (req.url == "/algo") {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(`
GeeksforGeeks
Read Algorithm analysis and Design Content
`);
res.end(); //end the response
}
else
res.end('Invalid Request!'); //end the response
// Server object listens on port 8081
}).listen(3000, ()=>console.log('Server running on port 3000'));
在上面的示例中, req.url 用于检查当前请求的 url 并基于它发送响应。
运行代码的命令:
node index.js
输出:
- 网址:本地主机:3000
- 网址:localhost:3000/webtech
- 网址:本地主机:3000/DS
- 网址:本地主机:3000/算法