【问题标题】:How to use `GET` and `POST` parameters inside Static Assets in ExpressJS如何在 ExpressJS 的静态资源中使用 `GET` 和 `POST` 参数
【发布时间】:2017-05-09 20:30:38
【问题描述】:

当使用 PHP 渲染使用GETPOST 请求参数的页面时,我们可以做类似的事情:

<p>Hello, <?php echo $_GET["name"]; ?>!</p>

当我们请求像/?name=Mike这样的文件时,我们得到以下输出:

<p>Hello, Mike!</p>

使用 Node JS 和 Express JS,我使用以下通用代码提供静态文件:

app.get('/user/:name', function(req, res) {
    res.render('user.html', {
        UserName: req.params.name
    });
});

在这里,在user.html,我想使用类似的东西:

<p>Hello, <? document.write(UserName); ?>!</p>
<p>Hello, <? document.write(req.params.name); ?>!</p>

切换到服务器端然后获取参数并在此处显示的东西。有没有办法使用静态文件来做到这一点,其中user.html 是一个静态文件?

【问题讨论】:

  • 您可以使用ejspug或其他模板引擎来解决问题。
  • @MukeshSharma 我们在服务器端使用 mustache,在客户端使用把手,它们是冲突的。有没有办法用车把做到这一切?
  • 是的,您也可以使用车把。遵循文档。
  • MongoDB 也是一种选择,它的工作相对无缝。

标签: javascript node.js express get static-files


【解决方案1】:

你可以通过在查询字符串中使用 RegularExperssion 来做到这一点

请求的 URL 应该是这样的 "http://servername/Profile?Name=Amir"

   app.get(new RegExp("Profile(\\.(?:htm|html))?(\\?.*)?$"), function (req, res) {


        var queryData = url.parse(req.url, true).query;

        var Name = queryData.Name;
        console.log(Name)

           res.render(__dirname + "/Pages/AppView.ejs", {
                username: Name ,
            })
        })

在 ejs 模板中会是这样的:

<h1> Welcome , <%= username %> </h1>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 2012-11-30
    • 1970-01-01
    相关资源
    最近更新 更多