Node.js 如何使用express node js将数据传递到另一个页面

Node.js 如何使用express node js将数据传递到另一个页面,node.js,express,Node.js,Express,这是我的密码。当它执行时,会显示一些错误 var express = Express(); express.post('/start', async function (req, res) { let data = req.body.name; console.log(data); var x = {name : data}; res.sendFile(path.join(__dirname, 'client/view', 'play.html', x)); }); 您正在将“x”变

这是我的密码。当它执行时,会显示一些错误

var express = Express();
express.post('/start', async function (req, res) {
 let data  = req.body.name;
 console.log(data);
 var x = {name : data};
 res.sendFile(path.join(__dirname, 'client/view', 'play.html', x));
});

您正在将“x”变量传递到导致错误的path.join方法中

res.sendFile(path.join(__dirname, 'client/view', 'play.html', x));

x是一个对象,path.join方法只接受字符串。

一种方法是使用
ejs
模板语言(但您可以选择任何其他方法)

  • 安装ejs(npm安装ejs)

  • 在根目录中设置视图文件夹
    /views

在你的申请中

const app = require('express');

// set ejs as a view engine
app.set('view engine', 'ejs')

app.post('/start', (req, res) => {
  const name = req.body.name;

  // render your play.ejs file which is located in views
  // /views/play.ejs
  // second parameter is an object that will be accessible in your view
  res.render('play', { name });
});
使用
语法在视图中显示数据

/views/play.ejs

<p><%= name %></p>


您能提供您遇到的错误吗?这将使我们更容易进行故障排除并帮助您。“(节点:18812)未经处理的PromisejectionWarning:TypeError:Path必须是字符串。在Object.join(path.js:489:7)'的assertPath(path.js:28:11)处收到{name:'kkrtkert'}。这是错误。
res.sendFile()
不接受像
x
这样的参数。也许您打算使用
res.render()
?而且,您还错误地将
x
传递到
path.join()
。请尝试
res.sendFile(path.join(uu dirname,'client/view,'play.html'),{data:x})我还使用res.render('play',x)。但它也显示了这样的错误。。未经处理的PromisejectionWarning:错误:在Function.module.\u resolveFilename(module.js:547:15)中找不到模块“html”,因此如何将X转换为字符串..?首先为什么要将X传递到路径中?这没有任何意义。