Включить миксин мопса из другой папки просмотра

Я установил несколько путей просмотра в своем экспресс-приложении:

express.set('views',['/path1', '/path2', '/path3']);

Когда я визуализирую свое представление, я хочу включить форму файла мопса path2 в path1.

# /path2/index.pug

include path1/mixin.pug

Я не могу найти решение этой проблемы.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
584
1

Ответы 1

Я не использовал представления express.set.

Просто сделайте это в своем файле мопса

включить ../path1/mixin.pug (или без .pug также может работать), например, включить ../path1/mixin

Редактировать:

Для тех, кто проголосовал против, вы ничего не знаете, Джон Сноу.

Мои настройки:
Файл: index.js в корневой папке проекта [ПРИМЕЧАНИЕ: нет app.set('views', path.join(__dirname, 'view'))]

const express = require('express')
const app = express()
const PORT = process.env.PORT || 3000
app.use(express.static('public'))
app.set('view engine', 'pug')
// routing
app.use('/', require('./home/route'))
app.listen(PORT, console.info(`Server started on port ${PORT}`))

Папка: вид (внутри корневой папки)

Папка: часть (внутри папки представления, например, root/view/part)

Файл: mixin.pug (внутри папки представления, например, root/view/part/mixin.pug

mixin pet(name)
  li.pet= name

Папка: шаблон (внутри папки представления, например, root/view/template)

Файл: main.pug (в root/view/template/main.pug)

doctype html
html
    head
    body
        h1 Hello template/main.pug
        block content

Папка: домашняя (внутри корневой папки, например, root/home)

Файл: route.js (внутри домашней папки, например, root/home/route.js)

const express = require('express')
const app = module.exports = express()
app.get("/",(req,res)=>{
    res.render('../home/index')
  })

Файл: index.pug (внутри домашней папки, например, root/home/index.pug)

extends ../view/template/main
block content
    h1 Helllllo from home/index.pug
    include ../view/part/mixin
    +pet('you')
    +pet('know')
    +pet('nothing')
    +pet('jon')
    +pet('snow')

Как видите, это выходной файл localhost:3000.

Абсолютное доказательство того, что он работает БЕЗ представлений express.set и с include ../path1/mixin.pug

Как это работает:

  • корневой файл index.js направляет в папку, где находится файл route.js, извлекает файл index.pug.
  • index.pug извлекает файл шаблона main.pug. Затем тянет миксин.

"Ничего ты не знаешь, Джон Сноу"

Другие вопросы по теме