Javascript Express.js:Get user';当他们发帖时,他们会引用url

Javascript Express.js:Get user';当他们发帖时,他们会引用url,javascript,ajax,node.js,post,express,Javascript,Ajax,Node.js,Post,Express,因此,我想为我的网站创建一个评论系统,为了知道评论的页面(例如,用户上传的特定视频),我需要在用户发表评论时获取用户当前所在页面的url(以便我知道如何将其保存在数据库中) 路径如下:app.get('/video/:videoId',function(req,res){…})因此视频url类似于:/video/98ux8987s987f9xc89v3wjgrkgh32 当用户发布评论时,我需要获取url的最后一部分我不想将url与注释一起发送(在ajax POST函数中),因为他们可以更改它

因此,我想为我的网站创建一个评论系统,为了知道评论的页面(例如,用户上传的特定视频),我需要在用户发表评论时获取用户当前所在页面的url(以便我知道如何将其保存在数据库中)

路径如下:
app.get('/video/:videoId',function(req,res){…})
因此视频url类似于:
/video/98ux8987s987f9xc89v3wjgrkgh32

当用户发布评论时,我需要获取url的最后一部分我不想将url与注释一起发送(在ajax POST函数中),因为他们可以更改它

顺便说一句,我不需要url post url(如果我在post函数中有类似
req.url
的东西,我只需要获取post url:
app.post('/comment',function(req,res){console.log(req.url)}
如果我这样做,我将得到
/comment

有办法吗


非常感谢。

我不确定我是否理解你的意思,但这就是你的意思吗

app.post('/comment/:videoId', function(req, res) {
    console.log(req.params.videoId)
}

videoId参数在req.params.videoId中。

我不确定是否能找到您,但这就是您的意思吗

app.post('/comment/:videoId', function(req, res) {
    console.log(req.params.videoId)
}

videoId参数位于req.params.videoId中。

您可以使用url添加哈希,但它不是不可阻止的。您可以在videoKey中添加日期或用户id

var secretkey = "4658{=#mkZl"; // The user doesn't know this string, and he can't make videoKey.

app.get('/video/:videoId', function(req, res){    
    res.render('video', {
        videoId: req.params.videoId,
        videoKey: sha256(secretkey + req.params.videoId + secretkey);
    });
};
在html表单中:

<form action="/comment">
    <input type="hidden" name="videoId" value="{videoId}" />
    <input type="hidden" name="videoKey" value="{videoKey}" />
</form>
:
你可以用url添加哈希,但这不是不可阻挡的。在videoKey中,你可以添加日期或用户id

var secretkey = "4658{=#mkZl"; // The user doesn't know this string, and he can't make videoKey.

app.get('/video/:videoId', function(req, res){    
    res.render('video', {
        videoId: req.params.videoId,
        videoKey: sha256(secretkey + req.params.videoId + secretkey);
    });
};
在html表单中:

<form action="/comment">
    <input type="hidden" name="videoId" value="{videoId}" />
    <input type="hidden" name="videoKey" value="{videoKey}" />
</form>
:
不完全正确。
app.post('/comment',function(req,res){//用户在评论时就在这个url中:
/video/98ux8987s987f9xc89v3wjgrkgh32`我需要获取//
98ux8987s987f9xc89v3wjgrkgh32
部分,而不发送给//客户端,因为他们可能会更改它。我需要直接从服务器端获取它!(如果我的英语不太好,我很抱歉!)),必须传递给客户端。总是可能会弄乱客户端上的数据,因此您也需要服务器端身份验证。您能给我一个服务器端身份验证的示例吗?谢谢!不完全是。
app.post('/comment',function(req,res){//当用户发表评论时,他就在这个url中:
/video/98ux8987s987f9xc89v3wjgrkgh32`我需要获取//
98ux8987s987f9xc89v3wjgrkgh32
部分,而不将其发送到//客户端,因为他们可能会更改它。我需要直接从服务器端获取它!(如果我的英语不太好,很抱歉!)),必须传递给客户端。总是可能会弄乱客户端上的数据,因此您也需要服务器端身份验证。您能给我一个服务器端身份验证的示例吗?谢谢!我用哈希令牌写了一个新的答案。只有服务器才能生成令牌(videoKey)用户需要它来发送评论。我用哈希令牌写了一个新的答案。只有服务器才能生成令牌(videoKey)用户需要它来发送评论。到目前为止,您的代码在我的程序中运行良好,但videoKey对于每个videoId都是相同的,因此在同一页面的每次刷新中,它都保持不变。是否有一个函数使它变少…静态?这样,它在同一页面的每次刷新中都会发生变化!@Jim Add user sessionid或cookie sessionid。但是如果您愿意的话为了防止垃圾邮件,令牌不是防止垃圾邮件的解决方案,您需要验证码。阅读:到目前为止,您的代码在我的程序中运行良好,但每个videoId的videoKey总是相同的,因此在同一页面的每次刷新中,它都保持不变。是否有一个函数使其减少…静态?这样,它在同一页面的每次刷新中都会发生变化page!@Jim Add user sessionid或cookie sessionid。但是,如果您想防止垃圾邮件,令牌不是防止垃圾邮件的解决方案,您需要验证码。请阅读: