我最近一直在弄乱nodejs。我有点新。我正在尝试使用Express获取URL的参数。我在读取发送给客户端的html文件中的变量时遇到一些困难。
我的代码是这样的:
app.get('/:username', (req, res) => {
var name = req.params.username;
console.log(name + " " + req.params.username);
res.status(200).sendFile(__dirname + '/public/index.html', {username: name});
});
我可以通过控制台读取变量。他们可以写在那里。但是我真的不知道如何获取它并在html文件中使用它。我尝试过这样的事情:
$("#link").html(username);
显然它不起作用。感谢您的帮助:)
答案 0 :(得分:1)
实际上,您可以在没有模板引擎的情况下执行此操作,也就是说,您只是出于学习目的而执行此工作。但是,如果您想执行重要的项目,请不要尝试此操作,只需使用模板引擎即可。
const fs = require("fs");
const path = require("path");
app.get("/:username", ( req ,res ) => {
const { username } = req.params;
fs.readFile( path.join( __dirname, "public", "index.html" ), ( err , buf ) => {
if ( err ) return res.status(500).send( "<p> something bad happened</p>" );
const regexp = new RegExp(`{{\\s{0,}username\\s{0,}}}`,"g");
const content = buf.toString().replace(regexp, username);
res.status(200).send(content);
});
})
让我们假设您的html文件是这样的
<!doctype html5>
<html lang="en">
<head> <title> </title> </head>
<body>
<p> Your username is <a href="/{{ username }}"> {{ username }} </a>
</body>
</html>
注意:请不要在大型项目中尝试此操作,否则最终将只能从头开始编写模板引擎,而最终会肿。
答案 1 :(得分:-1)
我建议使用Express工具生成您的应用程序的框架:http://expressjs.com/en/starter/generator.html
它包含用于管理如何获取GET参数的代码