首页 > 代码库 > [Node.js] Provide req.locals data though middleware
[Node.js] Provide req.locals data though middleware
We can create Template Helpers, which can contains some common reuseable data and libs.
/* This is a file of data and helper functions that we can expose and use in our templating function*/// FS is a built in module to node that let‘s us read files from the system we‘re running onconst fs = require(‘fs‘);// moment.js is a handy library for displaying dates. We need this in our templates to display things like "Posted 5 minutes ago"exports.moment = require(‘moment‘);// Dump is a handy debugging function we can use to sort of "console.log" our dataexports.dump = (obj) => JSON.stringify(obj, null, 2);// Making a static map is really long - this is a handy helper function to make oneexports.staticMap = ([lng, lat]) => `https://maps.googleapis.com/maps/api/staticmap?center=${lat},${lng}&zoom=14&size=800x150&key=${process.env.MAP_KEY}&markers=${lat},${lng}&scale=2`;// inserting an SVGexports.icon = (name) => fs.readFileSync(`./public/images/icons/${name}.svg`);// Some details about the siteexports.siteName = `Now That‘s Delicious!`;exports.menu = [ { slug: ‘/stores‘, title: ‘Stores‘, icon: ‘store‘, }, { slug: ‘/tags‘, title: ‘Tags‘, icon: ‘tag‘, }, { slug: ‘/top‘, title: ‘Top‘, icon: ‘top‘, }, { slug: ‘/add‘, title: ‘Add‘, icon: ‘add‘, }, { slug: ‘/map‘, title: ‘Map‘, icon: ‘map‘, },];
Then you can define a locals data in middleware:
Require helper file:
const helpers = require(‘./helpers‘);
// pass variables to our templates + all requestsapp.use((req, res, next) => { res.locals.hlp = helpers; res.locals.flashes = req.flash(); res.locals.user = req.user || null; res.locals.currentPath = req.path; next();});
Then in the pug file, you can use those locals variable:
extends layoutblock content h2 Sale ends in #{hlp.moment().endOf(‘day‘).fromNow()}
[Node.js] Provide req.locals data though middleware
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。