使用 MEAN 堆栈延迟加载 (AngularJS 1.x)

Posted

技术标签:

【中文标题】使用 MEAN 堆栈延迟加载 (AngularJS 1.x)【英文标题】:Lazy loading using MEAN stack (AngularJS 1.x) 【发布时间】:2018-05-19 15:22:16 【问题描述】:

如何使用 MEAN 堆栈在滚动上实现延迟加载/更多数据。我想一次加载 10 个帖子,当我向下滚动时,应该加载接下来的 10 个元素。

以下代码显示所有用户列表:

exports.findAllUsers = function (req, res) 
User.find(function (err, data) 
    if (err) 
        console.log("Users not Find.." + err);
        res.json( success: false, "data": err );
    
    else 
        console.log("Users Finds.. " + data);
        res.json( success: true, "data": data );
    
);
;

我已尝试使用以下代码进行延迟加载:但出现此错误(错误:未指定默认引擎且未提供扩展名。)

var itemsPerPage = 6;

exports.findAllUsers = function (req, res, pageNum) 

User.find(skip: (itemsPerPage * (pageNum-1)), limit: itemsPerPage, function (err, data) 
    if (err) 
        console.log("Users not Find.." + err);
        res.json( success: false, "data": err );
    
    else 
        console.log("Users Finds.. " + data);
        res.json( success: true, "data": data );
    
);
;

提前致谢!

【问题讨论】:

当您点击使用 findAllUsers 函数的端点时,您是如何枚举 pageNum 的?您是否在以某种方式将路由与函数联系起来的同一代码中从请求中解析出 pageNum? 我只是按照猫鼬文档中的“跳过方法”:docs.mongodb.com/manual/reference/method/cursor.skip/… 好的,但这不是我要问的。您的 findAllUsers 方法签名有一个 pageNum 参数,我没有看到它被初始化。根据您对以下答案的评论,我猜您不再收到“无默认引擎”错误,现在只能从您的端点获得一个结果 - 这可能是由于 pageNum 未定义造成的。 【参考方案1】:

您得到的错误与 throws 路由无关,ist 说您没有选择并为您的应用程序设置 template engine。

你需要这样设置:

app.set('view engine', 'jade');

或者,如果您想使用更容易学习的模板引擎,请像这样使用 ejs:

// set the view engine to ejs
app.set('view engine', 'ejs');

【讨论】:

感谢您的评论。是的,我已经设置了视图引擎,但是延迟加载/分页不起作用。我也没有收到任何错误。终端的结果是:用户 ID 是:56a736e5ecc25fc92b468045 数据发布 _id: 56a736e5ecc25fc92b468045, userName: 'admin', userEmail: 'admin@admin.com', userPass: 'admin', __v: 0, Date: '1453799012529' 用户发现.. 我的意思是它正在等待用户数据。@Elad @NareshAithagoni 这是否意味着您在遵循 Elad 的建议后不再收到“无默认引擎”错误?如果是这样,也许您应该接受这个答案并就您的新问题提出一个新问题。 @Will 是的,在遵循 Elad 的建议后,我没有收到 "No default engine" 错误。谢谢你,埃拉德。现在,我正在“延迟加载/分页”中寻求帮助。 我有一个用户列表和问题列表。我想一次加载 10 个元素,当我向下滚动时,接下来的 10 个元素应该加载。怎么做?。请帮帮我! @NareshAithagoni 将该问题作为站点中的 问题提出。如果您将我的原始答案标记为正确答案,我将感谢您。

以上是关于使用 MEAN 堆栈延迟加载 (AngularJS 1.x)的主要内容,如果未能解决你的问题,请参考以下文章

什么是MEAN全堆栈javascript开发框架

CORS 标头在 MEAN 堆栈应用程序中不起作用

SailsJS 是不是有类似 MEAN 堆栈的样板? [关闭]

AngularJS中的ExpressJS变量 - 平均堆栈

延迟 AngularJS 路由更改直到模型加载以防止闪烁

在AngularJS中实现一个延迟加载的Directive