nodejs 获取静态资源
时间: 2023-10-11 22:05:09 浏览: 129
在Node.js中获取静态资源有多种方法。其中一种常用的方法是使用Express框架,你可以通过设置静态文件夹并使用express.static中间件来处理静态资源。
首先,你需要安装Express模块并引入它:
```
let express = require('express');
let app = express();
```
然后,你可以使用app.use()方法来指定一个静态文件夹的路径,比如'./public/',这样就可以让Express知道在哪里查找静态资源:
```
app.use(express.static('./public/'));
```
接下来,你可以创建一个路由处理器,用于处理GET请求,比如返回首页:
```
app.get('/', function (req, res) {
res.send('我是首页');
});
```
最后,你需要指定监听的端口号,比如3000,并启动服务器:
```
app.listen(3000, function () {
console.log('服务器启动成功: http://localhost:3000');
});
```
这样,当你访问http://localhost:3000时,Express就会自动从指定的静态文件夹中查找并返回相应的静态资源。
除了使用Express框架,你还可以使用Node.js的http模块来获取静态资源。可以通过创建一个HTTP服务器并监听请求来实现。
首先,你需要引入http、url、path、fs和mime这些模块:
```
const http = require('http');
const url = require('url');
const path = require('path');
const fs = require('fs');
const mime = require('mime');
```
然后,创建一个HTTP服务器:
```
const app = http.createServer();
```
接下来,通过监听request事件来处理客户端请求:
```
app.on('request', (req, res) => {
let pathname = url.parse(req.url).pathname;
pathname = pathname == '/' ? '/default.html' : pathname;
let realPath = path.join(__dirname, 'public', pathname);
let type = mime.getType(realPath);
fs.readFile(realPath, (error, result) => {
if (error != null) {
res.writeHead(404, { 'content-type':'text/html;charset=utf8' });
res.end('文件读取失败!!!!!!!');
return;
}
res.writeHead(200, { 'content-type': type ';charset=utf8' });
res.end(result);
});
});
```
最后,你需要监听一个端口号,比如3000,并启动服务器:
```
app.listen(3000);
console.log('服务器启动成功!!');
```
这样,当你访问http://localhost:3000时,服务器会根据请求路径来读取相应的静态资源并返回给客户端。
综上所述,以上是两种常用的方法来获取Node.js中的静态资源。你可以根据自己的需求选择适合的方法来处理静态资源。
阅读全文