Node.js 中的不同服务器
Node.js 是一个开源和跨平台的运行时环境,用于在浏览器之外执行 JavaScript 代码。您需要记住 NodeJS 不是框架,也不是编程语言。大多数人感到困惑并理解它是一个框架或编程语言。我们经常使用 Node.js 来构建后端服务,例如 Web App 或 Mobile App 等 API。
有很多方法可以创建服务器,甚至 node.js 也有自己的内置服务器“http”。其中一些在下面提到:
1.使用' http '模块创建服务器:
导入http模块:导入http模块并将返回的 HTTP 实例存储到变量中。
句法:
var http = require("http");
创建和绑定服务器:使用createServer()方法创建服务器实例,并使用listen()方法将其绑定到某个端口。
句法:
const server = http.createServer().listen(port)
参数:此方法 (listen()) 接受如上所述和如下所述的单个参数:
- port < Number >:端口在 1024 到 65535 的范围内,包含注册端口和动态端口。
下面的例子说明了在 Node.js 中http模块的使用。
示例:文件名:index.js
javascript
// Node.js program to create
// http server
// Using require to access http module
const http = require("http");
// Port number
const PORT = process.env.PORT || 2020;
// Creating server
const server = http.createServer(
// Server listening on port 2020
function (req, res) {
res.write('Hello geeksforgeeks!');
// Write a response to the client
res.end();
}
)
.listen(PORT, error => {
// Prints in console
console.log(`Server listening on port ${PORT}`)
});
javascript
// Node.js program to create
// https server
// Using require to access https module
var https = require('https');
var fs = require('fs');
const port= 8000;
var options = {
// Note: We require SSL and certificate
// to create https servers
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem')
};
https.createServer(options, function (req, res) {
// Returns the status
res.writeHead(200);
res.end("Hello GeeksforGeeks");
}).listen(port);
javascript
// Node.js program to get the response
// from https server
// Using require to access http module
const https = require('https');
// https://www.google.com/
https.get('https://www.geeksforgeeks.org/', (res) => {
// Printing status code
console.log('statusCode:', res.statusCode);
// Printing headers
console.log('headers:', res.headers);
}).on('error', (e) => {
console.log(e);
});
javascript
// Node.js program to create server
// with help of Express module
// Importing express
const express = require('express');
// Creating new express app
const app = express();
// PORT configuration
const PORT = process.env.PORT || 2020;
// IP configuration
const IP = process.env.IP || 2021;
// Create a route for the app
app.get('/', (req, res) => {
res.send('Hello Vikas_g from geeksforgeeks!');
});
// Create a route for the app
app.get('*', (req, res) => {
res.send('OOPS!! The link is broken...');
});
// Server listening to requests
app.listen(PORT, IP, () => {
console.log(`The Server is running at:
http://localhost:${PORT}/`);
});
javascript
// Node.js program to create server
// using hapi module
// Importing hapi module
const Hapi = require('@hapi/hapi');
// Creating Server
const server = Hapi.server({
port: 2020,
host: 'localhost'
});
// Creating route
server.route({
method: 'GET',
path: '/',
handler: (request, hnd) => {
return 'Hello GeeksForGeeks!';
}
});
const start = async () => {
await server.start();
console.log('Server running at', server.info.uri);
};
process.on('unhandledRejection', (err) => {
console.log(err);
process.exit(1);
});
start();
javascript
// Node.js program to create server
// with help of Koa module
// Importing koa
const koa = require('koa');
// Creating new koa app
const app = new koa();
// PORT configuration
const PORT = process.env.PORT || 2020;
// IP configuration
const IP = process.env.IP || 2021;
app.use(function *(){
this.body = "Hello GeeksForGeeks!";
});
// Server listening to requests
app.listen(PORT, IP, ()=>{
console.log("Server started at port", PORT);
});
使用以下命令运行index.js文件:
node index.js
输出:
Server listening on port 2020
现在在 Web 浏览器中输入http://127.0.0.1:2020/或http://localhost:2020以查看输出。
2. 使用“ https ”模块创建服务器:
注意:为了创建HTTPS服务器,我们需要SSL 密钥和证书,以及内置的https Node.js 模块。
导入 https 模块:导入https模块并将返回的 HTTP 实例存储到变量中。
句法:
var https = require("https");
创建和绑定服务器:使用 createServer() 方法创建服务器实例,并使用 listen() 方法将其绑定到某个端口。
句法:
const server = https.createServer(options,
onResponseCallback).listen(port)
参数:此方法接受三个参数,如上所述,如下所述:
- options < key, certi > :包括通过的key和证书。
- onResponseCallback < Callback >:是一个回调函数,在createServer的响应中被调用。
- port < Number > :端口在 1024 到 65535 的范围内,同时包含注册端口和动态端口。
下面的例子说明了在 Node.js 中https模块的使用。
示例:文件名:index.js
javascript
// Node.js program to create
// https server
// Using require to access https module
var https = require('https');
var fs = require('fs');
const port= 8000;
var options = {
// Note: We require SSL and certificate
// to create https servers
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem')
};
https.createServer(options, function (req, res) {
// Returns the status
res.writeHead(200);
res.end("Hello GeeksforGeeks");
}).listen(port);
使用以下命令运行index.js文件:
node index.js
输出:
Hello GeeksforGeeks
现在服务器已设置并启动,我们可以通过以下方式获取文件:
curl -k https://localhost:8000
现在在 Web 浏览器中键入https://127.0.0.1:8000/或https://localhost:8000以查看输出。
示例:文件名:index.js
javascript
// Node.js program to get the response
// from https server
// Using require to access http module
const https = require('https');
// https://www.google.com/
https.get('https://www.geeksforgeeks.org/', (res) => {
// Printing status code
console.log('statusCode:', res.statusCode);
// Printing headers
console.log('headers:', res.headers);
}).on('error', (e) => {
console.log(e);
});
使用以下命令运行index.js文件:
node index.js
输出:
>> statusCode: 200
>> headers: { server: ‘Apache’, ……… ‘server-timing’: ‘cdn-cache; desc=HIT, edge; dur=1’}
3. 使用“Express”模块创建服务器:为了使用 express 模块,我们需要安装 NPM(Node Package Manager)和以下模块(在 cmd 上)。
// Creates package.json file
>> npm init
// Installs express module
>> npm install express --save OR
>> npm i express -s
导入 express 模块:导入 express 模块并将返回的实例存储到变量中。
句法:
var express = require("express");
创建服务器:上述语法调用“express()”函数并创建一个新的 express 应用程序,该应用程序存储在 app 变量中。
句法:
const app = express();
// OR by Importing and creating express application
var express = require("express")();
发送和监听响应:它与客户端和服务器通信请求和响应。它需要 PORT< number > 和 IP< number > 进行通信。
app.listen(PORT, IP, Callback);
参数:此方法接受三个参数,如上所述,如下所述。
- PORT < Number > :端口是通信的端点,有助于与客户端和服务器进行通信。
- IP
: IP 代表主机或设备的 IPv4 或 IPv6 地址。 - Callback < 函数 > :它接受一个函数。
下面的示例说明了 Node.js 中的Express.js模块。
示例:文件名:index.js
javascript
// Node.js program to create server
// with help of Express module
// Importing express
const express = require('express');
// Creating new express app
const app = express();
// PORT configuration
const PORT = process.env.PORT || 2020;
// IP configuration
const IP = process.env.IP || 2021;
// Create a route for the app
app.get('/', (req, res) => {
res.send('Hello Vikas_g from geeksforgeeks!');
});
// Create a route for the app
app.get('*', (req, res) => {
res.send('OOPS!! The link is broken...');
});
// Server listening to requests
app.listen(PORT, IP, () => {
console.log(`The Server is running at:
http://localhost:${PORT}/`);
});
使用以下命令运行index.js文件:
node index.js
输出:
The Server is running at: http://localhost:2020
现在在 Web 浏览器中输入http://127.0.0.1:2020/或http://localhost:2020/以查看输出。
4. 使用“Hapi”模块创建服务器:为了使用hapi模块,我们需要安装 NPM(Node Package Manager)和以下模块(在 cmd 上)。
// creates package.json file
>> npm init
// Installs hapi module
>> npm install @hapi/hapi --save
导入 hapi 模块:导入 hapi 模块并将返回的实例存储到变量中。
句法:
var Hapi = require("@hapi/hapi");
创建服务器:上面的语法导入了“express()”模块,现在它创建了一个服务器。它与客户端和服务器通信请求和响应。它需要 PORT
句法:
const server = Hapi.server({port: 2020, host: 'localhost'});
参数:此方法接受三个参数,如上所述,如下所述。
- PORT < Number > :端口是通信的端点,有助于与客户端和服务器进行通信。
- HOST < String > :它是主机的名称。
下面的示例说明了 Node.js 中的Hapi模块。
示例:文件名:index.js
javascript
// Node.js program to create server
// using hapi module
// Importing hapi module
const Hapi = require('@hapi/hapi');
// Creating Server
const server = Hapi.server({
port: 2020,
host: 'localhost'
});
// Creating route
server.route({
method: 'GET',
path: '/',
handler: (request, hnd) => {
return 'Hello GeeksForGeeks!';
}
});
const start = async () => {
await server.start();
console.log('Server running at', server.info.uri);
};
process.on('unhandledRejection', (err) => {
console.log(err);
process.exit(1);
});
start();
使用以下命令运行index.js文件:
node index.js
输出:
Server running at: http://localhost:2020
现在在 Web 浏览器中键入http://localhost:2020/以查看输出。
5.使用'Koa'模块创建服务器:为了使用Koa模块,我们需要安装NPM(Node Package Manager)和以下模块(在cmd上)。
// Creates package.json file
>> npm init
// Installs express module
>> npm install koa --save OR
>> npm i koa -s
导入 express 模块:导入 koa 模块并将返回的实例存储到变量中。
句法:
// Importing koa module
var koa = require("koa");
创建服务器:上述语法导入 koa 模块并创建一个新的 koa 应用程序,该应用程序存储在 app 变量中。
句法:
// Creating koa application
const app = new koa();
发送和监听响应:它与客户端和服务器通信请求和响应。它需要 PORT< number > 和 IP< number > 进行通信。
app.listen(PORT, IP, Callback);
参数:此方法接受三个参数,如上所述,如下所述。
- PORT < Number > :端口是通信的端点,有助于与客户端和服务器进行通信。
- IP < Number > : IP 代表主机或设备的 IPv4 或 IPv6 地址。
- Callback < 函数 > :它接受一个函数。
下面的示例说明了 Node.js 中的 Koa 模块。
示例:文件名:index.js
javascript
// Node.js program to create server
// with help of Koa module
// Importing koa
const koa = require('koa');
// Creating new koa app
const app = new koa();
// PORT configuration
const PORT = process.env.PORT || 2020;
// IP configuration
const IP = process.env.IP || 2021;
app.use(function *(){
this.body = "Hello GeeksForGeeks!";
});
// Server listening to requests
app.listen(PORT, IP, ()=>{
console.log("Server started at port", PORT);
});
使用以下命令运行index.js文件:
node index.js
输出:
The Server is running at port 2020
现在在 Web 浏览器中输入http://127.0.0.1:2020/或http://localhost:2020/以查看输出。