Вы можете создать модуль, который может потребоваться в любой части вашего приложения.
Например, у вас есть модуль в counter.js
определяется как
var counter = function() {
var count = 0;
this.addCount = function() {
count++
}
this.getCount = function() {
return count;
}
}
counter.instance = null;
counter.getInstance = function() {
if (this.instance === null) {
this.instance = new counter();
}
return this.instance;
}
module.exports = counter.getInstance();
Теперь вы можете использовать его в server.js
как этот
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var morgan = require('morgan');
app.use(morgan('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
var counter = require('./counter.js');
app.get('/value', function(req, res, next) {
res.send('Count = ' + counter.getCount());
});
app.use('/api', require('./api.js'));
var server = app.listen(3000, function() {
var host = server.address().address;
var port = server.address().port;
console.log("Server listening at http://%s:%s", host, port);
});
И в вашем api.js
как это
var express = require('express');
var router = express.Router();
var counter = require('./counter.js');
router.get('/', function(req, res, next) {
counter.addCount();
res.send('API Called');
});
module.exports = router;
Вам нужно указать, следует ли ожидать, что эта переменная будет «на пользователя» или «g ЛОБАЛЬНЫЕ». Вы хотите, чтобы вызов/api от каждого отдельного пользователя использовал все тот же увеличивающий счет? Или каждый пользователь имеет свой собственный счет. Глобальный счетчик, который увеличивается для всех запросов, независимо от того, кто их создал, намного проще. – jfriend00