Рекомендуется вызывать nuxt.render
в конце вашего промежуточного программного обеспечения, поскольку оно будет обрабатывать рендеринг вашего веб-приложения и не будет вызывать next()
- https://nuxtjs.org/api/nuxt-render/
Во-первых, вызовите next () в «Публичной части».
Во-вторых, добавьте промежуточное ПО nuxt ниже.
app.get('*', (req, res, next) => {
var firstIndex = req.get('host').indexOf('.');
var subdomain = req.get('host').substr(0, firstIndex).toLowerCase();
if (subdomain === '') {
// Public part, call next() to use the nuxt middleware!
next();
} else if (subdomain.indexOf('admin') !== -1) {
// Admin part
res.sendFile(path.join(__dirname, '../admin/js', 'index.html'));
} else {
// Static files
res.sendFile(path.join(__dirname, '../', req.url));
}
});
// The nuxt middleware
app.use(nuxt.render);
Другой пример, который также работает.
// If Public part, response Nuxt server render app.
app.use((req, res, next) => {
var subdomain = req.get('host').substr(0, firstIndex).toLowerCase();
if (subdomain === '') {
// Public part, call nuxt.render middleware
nuxt.render(req, res, next);
} else {
next();
}
});
// admin / static files
app.get('*', (req, res, next) => {
var firstIndex = req.get('host').indexOf('.');
var subdomain = req.get('host').substr(0, firstIndex).toLowerCase();
if (subdomain.indexOf('admin') !== -1) {
// Admin part
res.sendFile(path.join(__dirname, '../admin/js', 'index.html'));
} else {
// Static files
res.sendFile(path.join(__dirname, '../', req.url));
}
});
Надеюсь, это поможет!