node 实现静态服务server.js
时间: 2023-04-11 11:00:55 浏览: 96
可以回答这个问题。Node.js可以通过http模块来实现静态服务,具体实现可以参考以下代码:
```
const http = require('http');
const fs = require('fs');
const path = require('path');
const server = http.createServer((req, res) => {
const filePath = path.join(__dirname, 'public', req.url === '/' ? 'index.html' : req.url);
const extname = path.extname(filePath);
let contentType = 'text/html';
switch (extname) {
case '.js':
contentType = 'text/javascript';
break;
case '.css':
contentType = 'text/css';
break;
case '.json':
contentType = 'application/json';
break;
case '.png':
contentType = 'image/png';
break;
case '.jpg':
contentType = 'image/jpg';
break;
}
fs.readFile(filePath, (err, content) => {
if (err) {
if (err.code === 'ENOENT') {
// Page not found
fs.readFile(path.join(__dirname, 'public', '404.html'), (err, content) => {
res.writeHead(404, { 'Content-Type': 'text/html' });
res.end(content, 'utf8');
});
} else {
// Some server error
res.writeHead(500);
res.end(`Server Error: ${err.code}`);
}
} else {
// Success
res.writeHead(200, { 'Content-Type': contentType });
res.end(content, 'utf8');
}
});
});
const PORT = process.env.PORT || 5000;
server.listen(PORT, () => console.log(`Server running on port ${PORT}`));
```
这段代码会创建一个HTTP服务器,监听指定的端口,当有请求到来时,会根据请求的URL来确定要返回的文件,如果文件不存在,则返回404页面,如果文件存在,则返回文件内容。
阅读全文