首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从服务器更改HTML中的标记?

如何从服务器更改HTML中的标记?
EN

Stack Overflow用户
提问于 2019-09-12 00:27:02
回答 2查看 46关注 0票数 0

我有一个node.j服务器,我想在收到具有特定值的post请求时更改我的HTML。它是一个登录函数,当登录失败时,我需要某种形式的指示器。

我试过了:

代码语言:javascript
复制
res.send("Login failed").redirect(homepage);

但是,当然,它不工作,并使我的服务器崩溃。

我希望将信息发送到客户端,并将用户重定向回原始页面。

下面是我尝试上述行时出现的错误:

代码语言:javascript
复制
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to         the client
    at ServerResponse.setHeader (_http_outgoing.js:467:11)
    at ServerResponse.header (D:\TSN\1.0\Dev\node_modules\express\lib\response.js:771:10)
    at ServerResponse.location (D:\TSN\1.0\Dev\node_modules\express\lib\response.js:888:15)
    at ServerResponse.redirect (D:\TSN\1.0\Dev\node_modules\express\lib\response.js:926:18)
    at Query.<anonymous> (D:\TSN\1.0\Dev\API\routes\Users\usersRouteHandler.js:83:38)
    at Query.<anonymous> (D:\TSN\1.0\Dev\node_modules\mysql\lib\Connection.js:525:10)
    at Query._callback (D:\TSN\1.0\Dev\node_modules\mysql\lib\Connection.js:491:16)
    at Query.Sequence.end (D:\TSN\1.0\Dev\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
    at Query._handleFinalResultPacket (D:\TSN\1.0\Dev\node_modules\mysql\lib\protocol\sequences\Query.js:139:8)
    at Query.EofPacket (D:\TSN\1.0\Dev\node_modules\mysql\lib\protocol\sequences\Query.js:123:8)
EN

回答 2

Stack Overflow用户

发布于 2019-09-12 00:35:50

尝尝这个

代码语言:javascript
复制
res.send(‘<div>text</div>’).redirect(‘/‘)
票数 0
EN

Stack Overflow用户

发布于 2019-09-12 01:44:49

这里的问题是您试图在响应已经发送之后设置报头(res.redirect()将报头设置为重定向)。这是不可能的,因为当res.send()完成时,响应已经发送,您不能再重定向。

请尝试使用res.render()

编辑

您可以将一些数据传递给res.render(),然后在页面中使用它。如果您使用的是模板引擎,则可以在页面中有条件地呈现一条错误消息。

例如,如果用户输入了错误的密码,

你可以这样做,

代码语言:javascript
复制
res.render('auth/loginPage', { showError: true, errorMessage: 'Login Failed' });

然后在您的页面模板中,如果showError为真,则有条件地呈现一个错误(请记住,res.render的第二个参数的属性将在呈现时传递到您的模板中)。

代码语言:javascript
复制
<% if (showError) { %>
   <div class="user-message user-message--error"><%= errorMessage %></div>
<% } %>

这将在登录页面上显示一个错误。

希望这就是你要找的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57893306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档