Я провел все это утро в поисках того, как это сделать, и пришел в тупик.
Проект, над которым я работаю, основан на KeystoneJS / NodeJS.Он использует Nunjucks, с которым у меня есть только несколько дней базового опыта.
Моя проблема в том, что после загрузки конфигурационных переменных, которые устанавливают URI / порты служб, я хочу установить их как Nunjucksпеременные, поэтому в html-представлениях я могу использовать их в качестве местоположений src.
Я не могу поделиться всем кодом здесь, так как я работаю над проектом правительства (Великобритания), но, надеюсь, этого достаточно.
Keystone.js
// Require keystone
var keystone = require('keystone');
var cons = require('consolidate');
var nunjucks = require('nunjucks');
var env = new nunjucks.Environment(null);
env.addGlobal('provision_uri', 3);
Первоначально загружается после маршрутизации вызовов:
Login.js
var keystone = require('keystone');
var nunjucks = require('nunjucks');
exports = module.exports = function (req, res) {
var view = new keystone.View(req, res);
var locals = res.locals;
// locals.section is used to set the currently selected
// item in the header navigation.
locals.section = 'home';
var env = new nunjucks.Environment(null);
var provision_uri = env.getGlobal('provision_uri',3);
console.log(`Uri ${provision_uri}`); **<-- ERRORS HERE**
// Render the view
view.render('login', {
title: 'User Login',
description: 'Login to your Account',
provision_uri: provision_uri
});
};
Login.html
<br>
<form action="{{provision_uri}}/session" method="post" name="user">
<div class="container">
Когда я запускаю проект, целевая страница загружается, нажимаю на страницу входа и в консоли я получаю:
GET / provision / 304 74.147 ms
Ошибка для запроса: / логин
Ошибка: глобальная не найдена: provision_uri
Я проверил Вопрос , однако он не отвечаетчто мне нужно но я посмотрел environment.addGlobal в качестве ответа.Казалось, это то, что я хотел, но все равно это не сработало.Я нашел этот вопрос , который давал надежду.
Любые идеи были бы хорошими, у меня есть обходной путь, но я хотел бы узнать, как их использовать.
СпасибоКолин