读取通过express传递的参数

时间:2018-11-30 22:52:34

标签: node.js express


我最近一直在弄乱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);

显然它不起作用。感谢您的帮助:)

2 个答案:

答案 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参数的代码