Как выполнить функцию на стороне сервера в представлении HTML на node.js Express - PullRequest
0 голосов
/ 23 сентября 2018

Я пришел из PHP (laravel), я все еще новичок в node.js, и это забавно, но у меня есть некоторые проблемы с использованием функций на стороне сервера в моем представлении HTML.В отличие от laravel, где у меня есть доступ к некоторым важным функциям на стороне сервера, которые ускоряют работу, избегая повторений, на мой взгляд, у меня нет доступа к функциям на стороне сервера в файле node.js (экспресс).В laravel я могу сделать это в своих представлениях:

asset('images/avatar.jpg')
config('app.name') 
url('users/posts')

В laravel мои изображения и другие файлы находятся в каталоге хранения , который не находится в публичном каталоге, но использует asset () функция в шаблоне блейда, я могу получить доступ к файлам в папке хранилища.

В моем текущем приложении node.js у меня есть файл pathConfig.json, который содержит настройки пути моего приложения, на сервереЕсли у меня есть доступ к файлу, как я могу получить доступ к тому же пути из моего представления?Я использую Экспресс с Руль

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Я получил именно то, что хотел, используя пользовательский помощник express-handlebars ... С помощью express-handlebars я могу написать свою функцию на стороне сервера и использовать ее в представлении.

У меня есть файл helper.js на стороне сервера

const url = function(link=false) {
    return process.env.URL+'/'+link;
};


const anotherFunction = function() {
    return 2+2;
};

module.exports = {
    url : url,
    anotherFunction : anotherFunction
};

Файл App.js

helpers  = require('./helpers.js');    

app.engine('.html', hbs({
    extname : '.html',
    defaultLayout: 'main',
    helpers: helpers
}));

На мой взгляд (index.html)

<a href="{{url 'post/comments'}}"> Post comments</a>
0 голосов
/ 23 сентября 2018

создайте каталог public, в который вы сохраните все свои активы css, js, fonts, images, после чего вы должны установить промежуточное программное обеспечение static, которое позволяет Express обслуживать файл, который хранится в каком-то месте

var app = express()

// attaching the static middleware
app.use(express.static(path.join(__dirname, 'public')))

если у вас есть изображение test.png, хранящееся в подпапке images вашего публичного каталога, вы можете получить к нему доступ, используя http://xxxxx:port_number/test.png

...