node.js - 如何在 .ejs View 引擎中打印 cookie

标签 node.js express

如何在表单属性中打印 cookie 值?

这是我正在尝试的代码。

if(req.body.remember_me){
    res.cookie("cookie_email_id", req.body.email);
    res.cookie('password', req.body.password);
}else{
    res.clearCookie("cookie_email_id");
    res.clearCookie("password");
}

并且我已经在控制台中检查了 cookie,并且 cookie 存储在那里,请参阅 文档.cookie :

cookie_email_id=abc%40gmail.com;密码=123456789

最佳答案

要通过 ejs 预填充表单输入,首先您需要通过 res.cookie() 设置 cookie。要在表单字段中自动填充这些值。您需要从请求中获取 cookie 并将其分配给你的渲染方法。

为此,您可以像这样使用 cookie-parser 中间件,并在 req.cookies/req.signedCookies 中获取 cookie 值。

var express = require('express')
var cookieParser = require('cookie-parser')

var app = express()
app.use(cookieParser())

app.get('/', function (req, res) {
  // Cookies that have not been signed
  console.log('Cookies: ', req.cookies)

  // Cookies that have been signed
  console.log('Signed Cookies: ', req.signedCookies)
})

app.listen(8080)

从路由中你可以调用你的 ejs 渲染方法,所有的属性都可以自动填充

有点像

res.render('user_profile',{name:req.cookies.name, age:req.cookies.age})

然后您可以像这样将值放在您的 ejs 表单字段中

<input type="text" id="name" value="%name%"/>
<input type="text" id="age" value="%age%"/>

关于node.js - 如何在 .ejs View 引擎中打印 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49043817/

相关文章:

javascript - 如何设置关于路由器的快速模块?

node.js - Webpack2 热模块重新加载 Express.js 通用 React 应用程序

node.js - 如何在 firebase 的云功能中添加版本

javascript - typescript -> ES5问题

node.js - Express 中间件包装响应

php - 以下 PHP 代码片段的 Node.js 等效程序

node.js - 根据 AJAX 请求更新 EJS 变量

mysql - Nodejs Mysql 库错误 "Too many connections"

javascript - 超链接不适用于 Angular-fullstack yo 生成器

html - 使用查询字符串表达 res.sendFile()