我希望无论何时用户访问特定路由,写入/附加到文件。我想把代码放在路线里面#34; myroute"。我担心的是,如果有多个人访问我的快递应用程序,可能会有一些文件访问/写入问题。
我希望文件中的以下示例输出:
locManager.requestLocationUpdates(provider, 0L, 0.0F, this);
答案 0 :(得分:0)
如果你想每次为某条路线运行某些代码,我建议为它创建中间件。
http://expressjs.com/guide/using-middleware.html
var app = express();
app.use('/specific/route', function(req, res, next) {
//add your code to run every time route is hit
next();
}
app.get('/specific/route', function (req, res, next) {
res.send('hello world');
}
答案 1 :(得分:0)
你可以这样做:
var app = express();
var logger = function(request, response, next) {
var accessedPath = request.path;
// do something with the accessed path
next();
}
app.use(logger); // for all routes.
app.use('/admin', logger); // for specified routes
在预期的输出中,您可以添加另一列以指定访问指定路径的特定用户。
文件访问/写入问题
没有任何调查或深思熟虑。如果您的访问日志必须是文件,则可以使用一些排队系统。
您的记录器将是这样的:
var logger = function(request, response, next) {
var accessedPath = request.path;
// get the user info
// get datetime/timestamp/date/time Date.now()
// add userinfo, accessed path and timestamp to the queue.
next();
}
答案 2 :(得分:0)
您可以使用 express-winston npm 库
const routeWhitelist = ['/user', '/login'];
app.use(expressWinston.logger({
transports: [new winston.transports.Console()],
ignoreRoute: function (req, res) {
return routeWhitelist.indexOf(req.path) === -1;
}
}));