【发布时间】:2018-02-20 04:14:55
【问题描述】:
我有 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() 会自动调用所有导出的方法吗?
【问题讨论】:
-
你不是从 Report.js 显式调用你的 reportDB.test 函数吗?
-
是的,我从 Report.js 中调用它。但我不是从 app.js 调用它。那么它在服务器启动时如何调用
-
我想知道 app.use() 会自动调用所有导出的方法吗?
标签: javascript node.js express callback routes