我正在尝试在调用原始app.get之前完成一些事情。
我找到了this页面,我尝试了他们所做的并且它大部分都有效,当我尝试使用它的渲染引擎时,我期待它。
我正在使用的代码(app
是express()
的结果):
const express = require('express');
const app = express();
const ejs = require('ejs');
app.set('view engine', 'ejs');
var originalfoo = app.get;
app.get = function() {
// Do stuff before calling function
console.log(arguments);
// Call the function as it would have been called normally:
originalfoo.apply(this, arguments);
// Run stuff after, here.
};
app.get('/home', function (req, res) {
//res.send('hello world') // This works
res.render('index'); // This crashes
});
res.render给了我这个错误:TypeError: View is not a constructor
有谁知道如何解决这个问题?
PS:/views/index.ejs
确实存在
答案 0 :(得分:2)
您只需要返回原始函数调用,否则装饰的app.get
方法不再返回与原始函数不同的内容:
app.get = function() {
// Call the function as it would have been called normally:
return originalfoo.apply(this, arguments);
};