基于node.js建服务器,浏览器前端向服务器发请求,服务器根据请求的路径,讲对应文件的内容相应给浏览器,login/regist/index/404
时间: 2024-01-23 22:02:28 浏览: 68
好的,这是一个基于node.js的简单服务器搭建,可以实现浏览器前端向服务器发请求,服务器根据请求的路径,将对应文件的内容响应给浏览器。
首先,我们需要安装node.js和相关的模块。可以使用npm进行安装,命令如下:
```
npm install http fs path
```
安装完成后,我们可以开始编写代码。首先,我们创建一个server.js文件,在文件中引入http、fs和path模块,代码如下:
```javascript
const http = require('http');
const fs = require('fs');
const path = require('path');
```
接下来,我们定义一个函数,用于根据请求的路径返回对应的文件内容。该函数需要接收两个参数:请求的路径和响应对象。代码如下:
```javascript
function handleRequest(url, res) {
// 根据请求的路径返回对应的文件内容
let filePath = '';
switch (url) {
case '/':
case '/index':
filePath = path.join(__dirname, 'index.html');
break;
case '/login':
filePath = path.join(__dirname, 'login.html');
break;
case '/regist':
filePath = path.join(__dirname, 'regist.html');
break;
default:
filePath = path.join(__dirname, '404.html');
break;
}
fs.readFile(filePath, (err, data) => {
if (err) {
console.log(err);
res.writeHead(500, {'Content-Type': 'text/plain'});
res.end('500 Internal Server Error');
} else {
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(data);
}
});
}
```
在该函数中,我们根据请求的路径判断需要返回哪个文件的内容。如果文件不存在或读取文件时发生错误,返回500错误;否则返回200成功响应,并将文件内容作为响应的主体。
最后,我们创建一个http服务器,监听8080端口,并在请求事件中调用handleRequest函数进行处理,代码如下:
```javascript
const server = http.createServer((req, res) => {
const url = req.url;
handleRequest(url, res);
});
server.listen(8080, () => {
console.log('Server is running on http://localhost:8080');
});
```
现在,我们可以在命令行中运行node server.js启动服务器,然后在浏览器中访问http://localhost:8080/login或http://localhost:8080/regist等路径,服务器将返回对应的html文件的内容。
当访问不存在的路径时,服务器将返回404错误页面。
阅读全文