Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js EJS-将数据传递给部分视图,并在每个视图/页面中使用它。我该怎么做?_Node.js_Ejs - Fatal编程技术网

Node.js EJS-将数据传递给部分视图,并在每个视图/页面中使用它。我该怎么做?

Node.js EJS-将数据传递给部分视图,并在每个视图/页面中使用它。我该怎么做?,node.js,ejs,Node.js,Ejs,我使用ejs作为NodeApp的模板引擎,并且我必须在每个页面/视图中使用包含动态数据的局部视图。我不想从每个路由器传递数据来渲染它。我是否可以将数据传递一次,然后在任何独立于路由器的地方使用它?例如,在一个导航栏中,我显示用户信息和一些通知,我必须在我的整个网站上使用这个导航栏。如何在不重新处理数据的情况下实现它 注意:这个问题是对的重新发布,我在这里发布它,因为我在这里没有找到任何解决方案。好吧,你要做的是在一个页面上显示来自两个不同集合的内容,你必须在后端显示类似的内容,比如说你想在部分页

我使用ejs作为NodeApp的模板引擎,并且我必须在每个页面/视图中使用包含动态数据的局部视图。我不想从每个路由器传递数据来渲染它。我是否可以将数据传递一次,然后在任何独立于路由器的地方使用它?例如,在一个导航栏中,我显示用户信息和一些通知,我必须在我的整个网站上使用这个导航栏。如何在不重新处理数据的情况下实现它


注意:这个问题是对的重新发布,我在这里发布它,因为我在这里没有找到任何解决方案。

好吧,你要做的是在一个页面上显示来自两个不同集合的内容,你必须在后端显示类似的内容,比如说你想在部分页面中获取的产品列表:

exports.getIndex = (req, res, next) => {
const page = req.query.page;
let user;
let hasUser;
User.find().sort('-_id').then(users => {

        user = users
        hasUser = users.length > 0
        return Product.find().sort('-_id')
    })
    .then(products => {
        res.render('index', {
            prods: products,
            title: 'Ecommerce Site',
            path: '/',
            admin: false,
            hasProduct: products.length > 0,
            activeHome: true,
            isLoggedIn: req.session.isLoggedIn,
            user: user,
            hasUser: hasUser,
        });
    })
    .catch(err => {
        console.log(err);
    });
}

下一步是进入您的分部文件并为其编写语法以获取数据,但是在您想要应用分部的每个页面/视图上,您必须执行一个
return Product.find()