Javascript ERR“u INVALID”ARG“u TYPE-该;从「;参数的类型必须为字符串。接收到数组的一个实例
我正在尝试为视图文件夹添加两个目录。在文档中,我发现可以添加字符串或数组来添加多个视图文件夹 一个用于管理面板,另一个用于网站/公共用途 因此,我以以下方式添加:Javascript ERR“u INVALID”ARG“u TYPE-该;从「;参数的类型必须为字符串。接收到数组的一个实例,javascript,node.js,express,handlebars.js,express-handlebars,Javascript,Node.js,Express,Handlebars.js,Express Handlebars,我正在尝试为视图文件夹添加两个目录。在文档中,我发现可以添加字符串或数组来添加多个视图文件夹 一个用于管理面板,另一个用于网站/公共用途 因此,我以以下方式添加: /** * setting up the view engine */ app.engine('handlebars', hbs({ defaultLayout: "main" })); app.set('view engine', 'handlebars'); app.set('views', [p
/**
* setting up the view engine
*/
app.engine('handlebars', hbs({
defaultLayout: "main"
}));
app.set('view engine', 'handlebars');
app.set('views', [path.join(__dirname, 'views'), path.join(__dirname, 'public-views/zubizi-theme')]);
// end view engine setup
我得到以下错误:
TypeError[ERR\u INVALID\u ARG\u TYPE]:“from”参数必须是string类型。接收到数组的实例
(node:108) UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_TYPE]: The "from" argument must be of type string. Received an instance of Array
at validateString (internal/validators.js:117:11)
at Object.relative (path.js:437:5)
at ExpressHandlebars.renderView (F:\zubizi\cms\files\node_modules\express-handlebars\lib\express-handlebars.js:193:38)
at View.render (F:\zubizi\cms\files\node_modules\express\lib\view.js:135:8)
at tryRender (F:\zubizi\cms\files\node_modules\express\lib\application.js:640:10)
at Function.render (F:\zubizi\cms\files\node_modules\express\lib\application.js:592:3)
at ServerResponse.render (F:\zubizi\cms\files\node_modules\express\lib\response.js:1008:7)
at F:\zubizi\cms\files\routes\admin.js:7:6
at Layer.handle [as handle_request] (F:\zubizi\cms\files\node_modules\express\lib\router\layer.js:95:5)
at next (F:\zubizi\cms\files\node_modules\express\lib\router\route.js:137:13)
(node:108) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:108) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
这是我的文件夹结构,看起来像:
我在我的应用程序中使用了以下技术:
NodeJS模板引擎:快速车把
ExpressJS版本:4.16.0
节点JS版本:
v12.16.3
有一个开放的PR,支持以数组形式传入的多视图目录:
现在,您需要修复设置并将视图合并到一个目录中,然后只传递该目录:
app.set('views','。/views文件夹的路径)
使用双视图文件夹还有其他方法吗?或者我需要从express handlebar
移动到任何其他模板引擎吗?根据PR,不幸的是,没有使用express handlebar
,在我自己的项目中,我与支持它的ejs
一起工作(请参见)@HelloWorld:如果这回答了您的问题,请接受答案,关闭它。谢谢:)