简单示例代码1:demo1.js
const http = require("http");
const hostname = "127.0.0.1";
const port = 3000;
const server = http.createServer((req, res) => {
// 回调函数的参数 req 表示请求对象,包含客户端请求的各种信息
// 回调函数的参数 res 表示响应对象,包含向客户端发送响应的各种方法
res.statusCode = 200;
// console.log("pid",process.pid,process.ppid);
console.log("__filename", __filename);
console.log("__dirname", __dirname);
if (req.url.indexOf("error") != -1) {
req.x = a;
}
res.setHeader("Content-Type", "text/plain");
res.end("Hello World" + process.pid);
});
// 在回调函数中,首先判断请求的 URL 是否包含 "error" 字符串。
//如果包含,则给请求对象 req 添加一个属性 x,
// 并将其赋值为未定义的变量 a。这个操作会导致一个 ReferenceError 异常。
// 如果 URL 不包含 "error" 字符串,则返回一个文本响应,其中包含 "Hello World" 和当前进程 ID。
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
在上述代码中,我们首先引入了 Node.js 内置的 http
模块,该模块提供了创建 HTTP 服务器和客户端的功能。接着,我们指定服务器的 IP 地址和端口号,创建一个服务器对象 server
,并在其构造函数中传入一个回调函数。当服务器接收到客户端请求时,这个回调函数会被调用,该回调函数接收两个参数:req
表示请求对象,res
表示响应对象。
在回调函数中,我们首先设置了响应头信息,指定了响应类型为 text/plain
。然后,我们通过 res.statusCode
属性设置了响应状态码为 200,表示请求成功。最后,我们通过 res.end()
方法向客户端发送了响应数据,即字符串 "Hello, World!\n"。
最后一行代码使用 server.listen()
方法,启动服务器并开始监听客户端请求。当服务器启动后,控制台会输出一条消息提示服务器已经开始运行。
运行命令(终端):node demo1.js
结束服务器:在终端Ctrl+C
运行结果如下: