Node.js Express 框架2:防盗链,ejs模板引擎,express-generator
const express = require('express');
const fs = require('fs');
const path = require('path');
const app = express();
// 设置ejs模板引擎
app.set('view engine', 'ejs');
// 防盗链中间件
app.use(function(req, res, next) {
// 检查是否有Referer头部
if (req.headers.referer) {
// 检查Referer是否包含我们的域名
if (req.headers.referer.includes('yourdomain.com')) {
next(); // 来自我们域名,允许访问
} else {
res.send('非法访问!'); // 来自其他域名,拒绝访问
}
} else {
next(); // 没有Referer头部,可能是直接访问,允许
}
});
// 静态文件路由
app.use(express.static(path.join(__dirname, 'public')));
// 主页路由
app.get('/', function(req, res) {
res.render('index', { title: '主页' });
});
// 404错误处理
app.use(function(req, res) {
res.status(404).send('页面未找到!');
});
// 监听端口
app.listen(3000, function() {
console.log('服务器运行在 http://localhost:3000/');
});
这段代码示例展示了如何在Express应用中使用ejs模板引擎,并设置一个防盗链的中间件来保护资源不被其他网站引用。同时,它演示了如何设置静态文件路由,定义主页路由,以及如何处理404错误。最后,它启动服务器并监听3000端口。
评论已关闭