Передача абсолютного пути URL к представлению руля в экспрессе - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь просто установить канонический метатег, используя экспресс-сервер с рулями в качестве движка шаблонов. Я не могу понять, как получить абсолютный путь URL-адреса и передать его в вид руля. Я собирался создать вспомогательную функцию в руле, чтобы сделать это, но это было бы за пределами требования, поэтому я не знаю, как получить URL или как это сделать. Я хотел бы установить канонический динамически, а не вручную. Спасибо.

Вот мой простой сервер:

const express = require('express');
const router = require('./routes/router');
const handlebars = require('express-handlebars');
const PORT = process.env.PORT || 5000;
const path = require('path');
const app = express();

var hbs = handlebars.create({
  defaultLayout: 'main',
  helpers: {
    canonical: function() {
      //get absolute url path
    }
  }
});

app.use(express.json());
app.set('views', path.join(__dirname, 'views'));
app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');

router(app);

app.listen(PORT, err => {
  if (err) throw err;
  console.log(`ready at http://localhost:${PORT}`);
});

1 Ответ

0 голосов
/ 29 мая 2019

Тебе не нужен помощник для этого. Вы можете добавить значение к res.locals и получить к нему доступ через руль.

app.use("*", function(req, res, next){
    res.locals.absoluteUrl = absoluteUrl; // Note, you'll need to calculate this yourself
    next();
});

В Handlebars вы получаете доступ к нему как к стандартной переменной:

{{absoluteUrl}}
...