Express Router方法调用与模块之间的区别.EXPORT方法调用和App.use()呼叫在节点和Express



i有 app.js

var express = require('express');
var report = require('./routes/Report');
var app = express();
app.use('/api/appReport', report);
app.listen(3000);
module.exports = app;

我有 report.js

var express = require('express');
var router = express.Router();
var reportDb = require('../db/ReportDB');
reportDb.test(function(res) {
});
router.get('/all', function(req, resp) {
    reportDb.getAll(function(result) {
        resp.status(200);
        resp.send(result);
        return resp;
    });
}); 

我有 reportdb.js

module.exports.test = function() {
    console.log('Hello');
}
module.exports.getAll = function (callback) {
    //Some operations
};

上面的代码正常工作。

我的问题是

当我启动节点JS服务器时,它会自动调用report.js中存在的reportdb.test((,但它并未自动调用report.js中存在的router.get((。因此,我想知道调用test((和router.get((的呼叫有什么区别?

我知道何时命中'/all'URL,然后将调用router.get((。但是对于reportdb.test((,我们没有在app.js中调用,因此在启动服务器时它是如何自动调用的?

如果我在report.js中使用以下功能。然后它不会迅速。

function test1() {
    console.log('hello...');
}

我想知道是app.use((调用所有被导出的方法?

它的调用test((,因为您已经写了

    reportDb.test(function(res) {
    });

在report.js中,其中包括reportdb.js。另外,您在app.js。

中包括了report.js
    app.use('/api/appReport', report);

不是调用test((

您的路由器。Get((将在您触电时遇到localhost时打电话:3000/all

最新更新