我会逐步为您讲解如何使用Node.js搭建WEB服务器,并提供两个示例说明。
什么是Node.js
Node.js是基于Chrome V8 JavaScript引擎的开源的、跨平台的、事件驱动的JavaScript运行时环境。它使得开发者可以使用JavaScript编写后端服务器、命令行工具等应用程序。也就是说,使用Node.js可以将 JavaScript 应用到开发各种类型的应用程序。
如何在 Node.js 中搭建基本的 WEB 服务器
步骤一:创建一个Node.js文件夹
mkdir node-web-server
步骤二:在该文件夹下,初始化 Node.js 项目
在 node-web-server 文件夹下,打开命令行窗口,输入以下命令
npm init
按照提示,回答一些关于项目的问题。在这些问题中,最重要的是 entry point,Node.js 将从这个文件开始执行你的应用程序。
例如,当你执行服务端的命令时输入'app.js'时,Node.js 就会寻找一个名为 app.js 的文件作为项目入口点。
{
"name": "node-web-server",
"version": "1.0.0",
"description": "a node web server example",
"main": "app.js",
"author": "Your Name",
"license": "MIT"
}
步骤三:创建 app.js 文件
通过以下代码创建 Node.js 服务器
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
// Created a server object
const server = http.createServer((req, res) => {
res.statusCode = 200;
// Adding the response Header
res.setHeader('Content-Type', 'text/plain');
// Sending "Hello World" Response
res.end('Hello World\n');
});
// Start Server
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
在终端中输入指令
node app.js
在浏览器中打开 http://localhost:3000/ ,你将会看到 ‘Hello World’。
示例如下(示例1):
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
// Created a server object
const server = http.createServer((req, res) => {
res.statusCode = 200;
// Adding the response Header
res.setHeader('Content-Type', 'text/plain');
// Sending "Hello World" Response
res.end('Hello World\n');
});
// Start Server
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
浏览器显示结果:
Hello World
示例如下(示例2):
const http = require('http');
const fs = require('fs');
const url = require('url');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
const myUrl = url.parse(req.url, true).pathname;
let route = "." + myUrl;
fs.readFile(route, function (err, data) {
if (err) { // Not Found Error Response
res.writeHead(404, {'Content-Type': 'text/html'});
return res.end("404 Not Found");
}
// Set HTTP Response Headers
res.writeHead(200, {'Content-Type': 'text/html'});
// Response File
res.write(data);
return res.end(); // Ends the Response
});
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
在示例2中,使用了fs
和url
模块,开启了一个 Web 服务器,并根据用户访问的网址,返回对应的文件内容。在浏览器中访问http://localhost:3000/index.html,将会返回index.html文件的内容。
需要注意的是,示例2是需要在根目录下准备一个index.html文件才能正常运行,如果文件不存在,会返回一个404错误。
上述两个示例都是非常基本的,你可以加入更多的功能和复杂度,以使用更多的 Node.js 模块和技术来构建更为强大的 WEB 服务器。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Node.js搭建WEB服务器的示例代码 - Python技术站