【发布时间】:2019-01-28 15:06:25
【问题描述】:
我是node.js 的新手,并跟随博客练习。但是当我来渲染博客中所写的视图时。我遇到了一些奇怪的问题。
我将ejs 用作express 和signup.ejs 中的视图引擎,就像这样
<%- include('header') %>
<div class="ui grid">
<div class="four wide column"></div>
<div class="eight wide column">
<form class="ui form segment" method="post" enctype="multipart/form-data">
<div class="field required">
<label>username</label>
<input placeholder="username" type="text" name="name">
</div>
<div class="field required">
<label>password</label>
<input placeholder="password" type="password" name="password">
</div>
<div class="field required">
<label>repeat password</label>
<input placeholder="password" type="password" name="password">
</div>
<div class="field required">
<label>sex</label>
<select class="ui compact selection dropdown" name="gender">
<option>m</option>
<option>f</option>
<option>x</option>
</select>
</div>
<div class="field required">
<label>avatar</label>
<input type="file" name="avatar">
</div>
<div class="field required">
<label>bio</label>
<textarea name="bio" rows="5" v-model="user.bio"></textarea>
</div>
</form>
</div>
当我运行启动程序并在 pathlocalhost:3000/signup 中发送 http 请求时,我遇到了一些错误
SyntaxError:
C:\Users\ct\Documents\mycode\nodestudy\formalblog\views\signup.ejs:1
>> 1| <%- include('header') %>
2| <div class="ui grid">
3| <div class="four wide column"></div>
4| <div class="eight wide column">
C:\Users\ct\Documents\mycode\nodestudy\formalblog\views\header.ejs:13
11| <body>
12| <%- include('components/nav') %>
>> 13| <%- include('components/nav-setting') %>
14| <%- include('components/notification') %>
Unexpected token if in C:\Users\ct\Documents\mycode\nodestudy\formalblog\views\components\nav-setting.ejs while compiling ejs
我检查了文件路径以及我的node version is v7.2.0 for win 和ejs version 2.5.6。我已经阅读了 ejs 的文档,但我不知道错误信息 syntax error。
更新:在nav-setting.ejs中显示内容,感谢您提醒我真正发生错误的地方。
<div class="nav-setting">
<div class="ui buttons">
<div class="ui floating dropdown button">
<i class="icon bars"></i>
<div class="menu">
<%= if (user) { %>
<a class="item" href="/posts?author=<%= user._id %>">index</a>
<div class="divider"></div>
<a class="item" href="/posts/create">post</div>
<a class="item" href="/signout">logout</a>
<% } else { %>
<a class="item" href="/signin">login</a>
<a class="item" href="/signup">signup</a>
<% } %>
</div>
</div>
</div>
【问题讨论】:
-
根据工具,您的错误实际上在
nav-settings.ejs文件中。剩下的只是指出为什么其他文件编译失败(因为他们直接或间接使用了那个nav-settings.ejs文件)。 -
显示
nav-setting.ejs的内容(在文件夹 C:\Users\ct\Documents\mycode\nodestudy\formalblog\views\components\ 中) -
我已经在
nav-setting.ejs添加了内容,谢谢你的评论。 -
让我猜猜,
<%= ... >期望一个表达式插入到文档中。