scribe js error - console.log未定义

时间:2016-02-13 00:55:21

标签: javascript node.js express scribe-js

我正在使用像

这样的抄写员

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;

1 个答案:

答案 0 :(得分:1)

问题在于,在将请求传递给处理程序时,快速路由器不会维护对控制台变量(或进程,似乎)的引用。即使您尝试在同一文件中使用匿名处理程序内的控制台变量(未加载子模块),此问题仍然存在。

解决方案是在app.locals中缓存对Scribes控制台的引用,并通过req.app.locals.console访问它。有关此问题的更多详情:Global Variable in app.js accessible in routes?

我在github上发了一个pull请求。我所做的更新标有以下风格的评论:

/*
 * update explination
 */