TypeError:无法读取属性'查找'的未定义
TypeError: Cannot read property 'lookup' of undefined
我正在尝试在Nodejs(expressjs)应用程序中设置多个视图。
参考链路
我在终端中运行node server
命令时遇到了这个错误。
TypeError: Cannot read property 'lookup' of undefined
在这条线上
var lookupProxy = express.view.lookup;
我的代码出了什么问题!这是我的服务器.js:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
enableMultipleViewFolders(express);
app.set('views', [__dirname + '/admin/views', __dirname + '/client/views']);
app.engine('html', require('ejs').renderFile);
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
app.listen(port, function(){
console.log('Listening on port ' + port); //Listening on port 8888
});
app.get('/', function (req, res) {
res.render('index.html');
});
app.get('/partials/:name', function (req, res) {
console.log(req.params.name);
res.render('partials/' + req.params.name);
});
function enableMultipleViewFolders(express) {
// proxy function to the default view lookup
var lookupProxy = express.view.lookup;
express.view.lookup = function (view, options) {
if (options.root instanceof Array) {
// clones the options object
var opts = {};
for (var key in options) opts[key] = options[key];
// loops through the paths and tries to match the view
var matchedView = null,
roots = opts.root;
for (var i=0; i<roots.length; i++) {
opts.root = roots[i];
matchedView = lookupProxy.call(this, view, opts);
if (matchedView.exists) break;
}
return matchedView;
}
return lookupProxy.call(express.view, view, options)
};
}
由于express 4的express模块没有view
属性,因此发生错误。
要解决此问题,您需要删除启用多个视图的自定义功能。这是因为Express 4已经支持多个视图。请参阅此问题:Express 的多个视图文件夹
相关文章:
- 如何使用JavaScript查找未定义的CSS属性的值
- jQuery'查找'未定义
- 查找未定义值的所有对象
- TypeError:无法读取属性'查找'的未定义
- 查找任何未定义的变量并从url字符串中隐藏
- Expressjs Mongoose 查找嵌套的嵌入式文档未定义
- 与“未定义”进行比较是否仍会进行全局范围查找
- 在对象上定义 getter,以便所有未定义的属性查找都返回 “”
- 余烬未正确初始化存储:无法读取未定义的属性“查找”
- 错误“JavaScript 运行时错误:查找滚动位置时无法获取未定义或空引用的属性'scrollLeft'”
- EmberJS无法调用方法'查找'保存模型时未定义的
- 无法调用方法'查找'的未定义
- 在关联数组查找中未定义
- 在ReferenceError中查找未定义的变量名称字符串
- 是否可以使用jQuery来查找高度未定义的文本跨度的高度
- 查找并更改未定义值的属性
- DOM查找ID返回未定义
- 为什么是Lodash _.查找返回未定义的方法
- 在chrome中查找具有未定义值的元素
- Angular Undercore无法读取属性'查找'的未定义