Node.js静态资源访问方式详解
Node.js 的静态资源方式还挺多样的,光靠它自己就能搞定前端页面的 HTML、CSS、JS,甚至图片都不在话下。如果你用过 Express,那静态资源就像搭个积木一样简单,一个 express.static()
就能搞定。而且目录一设,访问路径也就有了,省心又直观。
Express 框架的静态文件服务蛮省事的,你只要用app.use(express.static('public'))
,就能把public
目录变成静态资源仓库。浏览器能直接求这些文件,比如http://localhost:3000/logo.png
这种。
如果你不想依赖框架,也可以用 Node.js 自带的 http 模块自己撸代码。虽然写起来麻烦点,但能学到不少底层原理。得自己读文件、写响应头,像下面这样:
const http = require('http');
const fs = require('fs');
http.createServer((req, res) => {
fs.readFile('index.html', (err, data) => {
if (err) throw err;
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end(data);
});
}).listen(3000);
不过嘛,如果项目稍微大点或者并发高一点,光靠 Node 有时候吃不消。这个时候 Nginx 就该上场了。它静态资源是真快,还能做缓存,Node 就专心干活就行了。比如你可以这样配:
location /static/ {
alias /var/www/static/;
expires 30d;
}
location /api/ {
proxy_pass http://localhost:3000;
}
除了 Express,其实像 Koa、Connect 这些框架也都有中间件可以搞静态文件。如果你在开发阶段,那 webpack-dev-server 或 browser-sync 也都挺好用,自动刷新、静态托管都帮你做好了。
所以你说 Node 靠不靠谱?嗯,还挺能干的。只要你选对方式,它就能稳稳地把前端页面托起来。如果你刚好在搭服务,建议先试试 Express,简单又顺手。
43.25KB
文件大小:
评论区