在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ express 怎么給所有要 render 的頁(yè)面賦值一個(gè)變量?

express 怎么給所有要 render 的頁(yè)面賦值一個(gè)變量?

目前我的使用方法是

const express = require('express');
const Router = express.Router();
const path = require('path');
const src = path.resolve(__dirname, '../src/');
// 自動(dòng)路由
const fs = require('fs'),
    PathRouter = [];
// 同步讀取文件
fs.readdirSync(`${src}/views`).forEach(file => {
    if (file.indexOf('.html') > -1) {
        PathRouter.push(file.substr(0, file.indexOf('.html')));
    }
})

PathRouter.forEach(function(item) {
    Router.get(`/${item}`, function(req, res) {
        let {deviceId} = req.cookies;
        if (item === 'index') {
            return res.redirect('/'); // 重定向到 / 
        }
        res.render(`${item}.html`, {deviceId}); // 這里在給所有要渲染的頁(yè)面賦值一個(gè)變量
    });
});


module.exports = Router

但是我現(xiàn)在改配置,改結(jié)構(gòu)了,不用上面的方式了。

我用的是這樣的方式
IndexController.js

module.exports = function(app) {
    app.get('(\/|\/index)', function(req, res) {
        let { deviceId } = req.cookies;
        res.render('index.html', {
            deviceId
        });
    });
}

那么如果有 OtherController.js,我又要重新賦值一次了

module.exports = function(app) {
    app.get('(\/|\/index)', function(req, res) {
        let { deviceId } = req.cookies;
        res.render('other.html', {
            deviceId
        });
    });
}

所以想知道 express 怎么給所有要 render 的頁(yè)面賦值一個(gè)變量?

回答
編輯回答
心悲涼

把你的變量掛載在 app.locals

2017年5月7日 13:27