如何在.ejs视图引擎中打印cookie

Shu*_*zad 6 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");
}
Run Code Online (Sandbox Code Playgroud)

我已经设置了控制台cookie中的My Cookie

document.cookie :

cookie_email_id=abc%40gmail.com; password=123456789

jen*_*sto 6

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

为此,您可以像这样使用 cookie 解析器中间件,并在 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)
Run Code Online (Sandbox Code Playgroud)

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

就像是

res.render('user_profile',{name:req.cookies.name, age:req.cookies.age})
Run Code Online (Sandbox Code Playgroud)

然后,您可以将值放入 ejs 表单字段中,如下所示

<input type="text" id="name" value="%name%"/>
<input type="text" id="age" value="%age%"/>
Run Code Online (Sandbox Code Playgroud)


Hon*_*arc 3

当您回复时,请尝试以下操作:

res.render("your_page", {email: req.body.email, password: req.body.password});
Run Code Online (Sandbox Code Playgroud)

并将email和设置password为输入值(使用ejs)。