私はハンドルバーを試していますが、これには次の簡単なテンプレートを使用しています:
<html>
<head></head>
<body>
<h1>{{title}}</h1>
<p>{{body}}</p>
{{#each list}}
<ul>
<li>{{@index}}. {{this}}</li>
</ul>
</br>
{{{htmlTag}}}
{{#if user.admin}}
<button class="launch">Launch Spacecraft</button> {{else}}
<button class="login"> Log in</button>
{{/if}}
{{!-- This is a comment --}}
</body>
</html>
俺の app.js
は次のようになります。
require('dotenv').config()
const express = require('express')
const logger= require('morgan')
const path = require('path')
const app = express()
app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'hbs')
app.use(logger(process.env.LOG_ENV))
app.get('/', (req, res) => {
const titel = "This is a titel"
const body = "Lorem ipsum dolor sit amen ..."
const list = ['Apple', 'banana', 'vegetable']
const htmlTag = '<h2>This is an unescaped Heading</h2>'
const user = {
admin: true
}
res.render('index',{titel, body, list, htmlTag, user})
})
// Start Server
const port = process.env.APP_PORT || 8080
const Host = process.env.APP_URL || '0.0.0.0'
app.listen(port, Host, () => {
console.log(`Listening on ${Host}:${port}/`)
})
module.exports = app
ページをレンダリングすると、次のエラーが発生します。
エラー:/home/ubuntu/workspace/src/views/index.hbs:20行目の解析エラー:...}} ------------------- ^ Expecting ' OPEN_INVERSE_CHAIN '、' INVERSE '、' OPEN_ENDBLOCK 'は、ObjectでObject.parseError(/home/ubuntu/workspace/node_modules/handlebars/dist/cjs/handlebars/compiler/parser.js:267:19)で' EOF 'を取得しました。解析(/home/ubuntu/workspace/node_modules/handlebars/dist/cjs/handlebars/compiler/parser.js:336:30)at HandlebarsEnvironment.parse(/ home/ubuntu/workspace/node_modules/handlebars/dist/cjs/handlebars /compiler/base.js:46:43)at compileInput(/home/ubuntu/workspace/node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js:514:19)at ret(/ home/ubuntu/workspace /node_modules/handlebars/dist/cjs/handlebars/compiler/compiler.js:523:18)/home/ubuntu/workspace/node_modules/hbs/lib/hbs.js:63:19 at tryToString(fs.js:456 :3)FSReqWrap.readFileAfterClose [oncompleteとして](fs.js:443:12)
テンプレート内で何が間違っているのでしょうか?
お返事ありがとうございます!
エラー状態:
期待しています(...)、EOFを取得しました
どこ:
不足しているのは{{/each}}
:
{{#each list}}
<ul>
<li>{{@index}}. {{this}}</li>
</ul>
</br>
{{{htmlTag}}} {{#if user.admin}}
<button class="launch">Launch Spacecraft</button> {{else}}
<button class="login"> Log in</button> {{/if}} {{!-- This is a comment --}}
{{/each}} <!-- HERE -->
これは常に、{{each}}
、{{if}}
、または他の制御ステートメントを閉じなかった結果ですが、<div>
、<p>
などの閉じられていないhtmlタグやその他のhtmlタグが原因ではありません。