为什么在使用 Node/Expree 和 Pug 时不能将函数的创建和导出分开?

Why can't I separate the creation of the function and the export when using Node/Expree and Pug?

在使用 Node/Express、MongoDB/Mongoose 和 Pug 构建的应用程序中,我有一个名为 indexController2.js 的控制器函数 JS 文件,我所在的位置导出一个名为 index.

的函数

我知道如果我写 exports.index... 它会完美地工作 但是,我想知道为什么我不能分开创建函数形成导出,就像下面所示?

(节点 returns Route.get() 的错误需要回调函数但得到了 [对象未定义])

function index(req, res) {
    Livro.countDocuments({}, function(err, results){
        if (err){
            res.render('livrariaIndex2', {title: 'Livraria JBM Home', count: 'Erro!!!!'});        
        } else {
            res.render('livrariaIndex2', {title: 'Livraria JBM Home', count: results});
        }
    })
}

exports.index;

要将 index 函数成功导出为 index 导出名称,您必须将 index 函数指定为 index 属性 exports 对象。

所以,您应该使用:

exports.index = index;

只是自己执行:

exports.index;

什么都不做。它不会将任何东西分配给任何东西。