37 lines
899 B
JavaScript
37 lines
899 B
JavaScript
|
|
/**
|
|||
|
|
* Express服务器示例
|
|||
|
|
* 展示如何集成SEO中间件
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
const express = require('express')
|
|||
|
|
const path = require('path')
|
|||
|
|
const SEOMiddleware = require('./middleware')
|
|||
|
|
|
|||
|
|
const app = express()
|
|||
|
|
const port = process.env.PORT || 3000
|
|||
|
|
|
|||
|
|
// 初始化SEO中间件
|
|||
|
|
const seoMiddleware = new SEOMiddleware({
|
|||
|
|
templateDir: path.join(__dirname, '../public/seo-templates'),
|
|||
|
|
debug: process.env.NODE_ENV === 'development'
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
// 应用SEO中间件(必须在静态文件服务之前)
|
|||
|
|
app.use(seoMiddleware.express())
|
|||
|
|
|
|||
|
|
// 静态文件服务
|
|||
|
|
app.use(express.static(path.join(__dirname, '../dist')))
|
|||
|
|
|
|||
|
|
// SPA路由处理
|
|||
|
|
app.get('*', (req, res) => {
|
|||
|
|
res.sendFile(path.join(__dirname, '../dist/index.html'))
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
// 启动服务器
|
|||
|
|
app.listen(port, () => {
|
|||
|
|
console.log(`🚀 服务器运行在 http://localhost:${port}`)
|
|||
|
|
console.log(`🔍 SEO中间件已启用`)
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
module.exports = app
|