我正在使用像
这样的抄写员app.js
var scribe = require('scribe-js')();
var console=process.console;
app.use(scribe.express.logger());
app.use('/logs', scribe.webPanel());
和我的
module.js
var like = 0;
var error=require('./error');
var console=process.console; <-- this line
//only works if i comment above line
//else it shows console not defined
var like_dislike = {
like: function(req, res, next) {
like++;
console.log(process.console);
console.log("Like:" + like + " ClientTime:" + req.query.timestamp);
res.sendStatus(200)
}
}
module.exports=like_dislike
任何想法,至少从哪里开始寻求解决这个问题?
由于
EDIT error.js
function error(res, custom_error, actual_error) {
if (actual_error)
console.error(actual_error);
res.status(custom_error.status).send(custom_error.text);
}
module.exports=error;
答案 0 :(得分:1)
问题在于,在将请求传递给处理程序时,快速路由器不会维护对控制台变量(或进程,似乎)的引用。即使您尝试在同一文件中使用匿名处理程序内的控制台变量(未加载子模块),此问题仍然存在。
解决方案是在app.locals
中缓存对Scribes控制台的引用,并通过req.app.locals.console
访问它。有关此问题的更多详情:Global Variable in app.js accessible in routes?
我在github上发了一个pull请求。我所做的更新标有以下风格的评论:
/*
* update explination
*/