如何在节点js中将变量从一个ejs传递到另一个ejs

how to pass variable from one ejs to another ejs in node js

我的视图文件夹中有两个 ejs 我创建了非常简单的 ejs 来查看是否可以将变量从一个 ejs 发送到另一个 ejs。

a.ejs 在视图文件中

<form name="input" action="\home" method="post">
      <input type='checkbox' checked>Cheese
    <input type="submit" value="Submit" href="validation.ejs">
    </form>

b.ejs 有

<h1><% post my variable here%></h1>

在我的节点 js 中,这就是我所做的 const express = require('express'); const bodyParser = require('body-parser');

const app = express();

app.use(bodyParser.urlencoded({ extended: false }));

app.set('view engine', 'ejs');

app.get('/', (req, res) => {
    res.render('index', { title: 'EJS Demo' });
});

app.post('/', (req, res) => {
    const a = req.body.a;
    res.get('index2',a);
});

app.listen(3000, () => {
    console.log('Listening....');
});

我认为 post 必须在这里做点什么...

我认为您需要从 page1 中的 form1 提交一个值并将该变量传递给 page2

如果是这样你可以这样做

const express = require('express'); 
const bodyParser = require('body-parser');

const app = express();

app.use(bodyParser.urlencoded({ extended: false }));

app.set('view engine', 'ejs');


// send the page1 to the user
app.get('/', (req, res) => {
    res.render('page1', { title: 'EJS Demo' });
});


//capture the submit from the user and then send another page
//to the user
app.post('/submitForm', (req, res) => {
    const a = req.body.valueFromA;
    res.render('page2',a);
});

app.listen(3000, () => {
    console.log('Listening....');
});
<form name="input" action="\home" method="post">
      <input type='checkbox' checked>Cheese
    <input type="submit" value="Submit" href="validation.ejs">
</form>

<!-- page1 form1 -->

<html>
<head>
  <title> <& title &> </title>
</head>
  <form action='/submitForm' method='post'>
    <input type='text' value='' name='valueFromA' />
    <input type='submit' />
  </form>
</html>


<!-- page2 ejs -->

<html>
  <body>
    <p> <% value %> </p>
  </body>
</html>

b.ejs has

<h1><% post my variable here%></h1>
in my node js this is what i did const