gpt4 book ai didi

javascript - 使用 hbs 并收到错误 "Arguments to path.join must be strings"?

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:59 25 4
gpt4 key购买 nike

我想使用 hbs 和express 将一些模板应用于 JSON 数据(最终将从 url 获取数据)。作为一个使用express 4的新手,我发现很多以前的帖子和解决方案确实令人困惑,因为某些功能在express 4中被贬值了。我组合了一些代码片段,得到了这样的结果:

  var engines = require('consolidate');
var express = require('express');
var hbs = require('hbs');
app = express();


app.set('views', __dirname+ '/views');
app.set('view engine', 'hbs');
app.set("view options", { layout: true });


// ROUTES
app.get('/', function (req, res){
var data = {"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}


res.render('index', JSON.stringify(data));
});

app.listen(3000);

我也尝试过在 res.render 中放入一个简单的字符串,例如

         res.render('index', 'haha');

但是还是不行。有什么见解请...?

编辑:我的模板的目录是

        views
- index.hbs

实际上我只放了

         <hi> Hi </h1>

在此文件中。

最佳答案

render的第二个参数是一个对象,而不是字符串。只需传递数据

编辑:您还设置了layout: true,但没有layout.hbs。将其设置为 false 并且您的 index.hbs 应该呈现。

编辑2:完整的工作示例

index.js

var engines = require('consolidate');
var express = require('express');
var hbs = require('hbs');
app = express();


app.set('views', __dirname + '/views');
app.set('view engine', 'hbs');
app.set("view options", { layout: false });


// ROUTES
app.get('/', function (req, res){
var data = {
"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]
};

res.render('index', data);
});

app.listen(3000);

View /index.hbs

{{#each employees}}
Name: {{firstName}}<br>
{{/each}}

关于javascript - 使用 hbs 并收到错误 "Arguments to path.join must be strings"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24759768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com