res.render переданные объекты, как они называются? - PullRequest
0 голосов
/ 28 марта 2020

Я все время боролся с этими объектами внутри res.render, как я могу определить их глобально или как-то вне res.render? Я надеюсь, что есть способ сделать это .. вот пример:

router.get("/home/blog", function(req,res){
    Sandwich.find({}, function(err,posts){
        if(err){
            console.log(err);         
        } else {          
                res.render("blog", {posts:posts} <--------- These )            
        }
    });

1 Ответ

0 голосов
/ 28 марта 2020

res.render переданные объекты, как они называются?

Это просто аргумент, передаваемый в средство визуализации шаблона. do c для res.render() называет его "объектом местных жителей" . Вот что показывает do c:

res.render(view [, locals] [, callback])

locals, an object whose properties define local variables for the view.

как я могу определить их глобально или каким-либо образом вне res.render?

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

In По указанному вами маршруту c вы не можете поместить сообщения в глобальный или даже общий объект, поскольку при добавлении / удалении сообщений этот глобальный или общий объект не обновляется.

FYI, когда вы получаете сообщение об ошибке в вашей базе данных, вам все равно нужно отправить ответ на запрос, возможно, ответ 5xx о состоянии или вывести ошибку p возраст.

...