gpt4 book ai didi

node.js - 如何向前端js传递/使用req.params

转载 作者:太空宇宙 更新时间:2023-11-04 01:31:31 25 4
gpt4 key购买 nike

我试图将req.params发送到前端并将其与各种js函数一起使用,但我不知道如何在客户端用js访问它。

具体来说,我试图获取用户输入的名为namespacereq.param

app.get('/:namespace', function(req,res){
res.render('chatLayout', { title: 'Welcome to the ' +
req.params.namespace +" room!"}), {namespace: req.params.namespace };

});

然后在客户端js文件中设置一个名为room的变量,如下所示:var room= io.connect('http://localhost:3000/' +namespace);

但是,由于我不知道如何使客户端js文件可以访问req.params.namespace,因此命名空间未定义。

注意:我使用 pug 作为我的模板语言

我尝试了一些方法。

  1. 尝试从客户端 js 文件中调用 req.params.namespacenamespace,但两者都会抛出错误,指出它们未定义

  2. 在调用js文件之前使用脚本标签在pug文件中创建一个全局变量并设置var a=namespacevar a=req.params.namespace,但这似乎并不能让js文件访问该变量。看起来它应该像这个问题 Can I access variables from another file? 一样工作,所以也许这个方法可能有效,但我只是做得不正确

后端

    var express= require('express');
var socket= require('socket.io');

//App setup
var app= express();
app.set('view engine', 'pug');
var server= app.listen(3000, function(){
});

//Static files
app.get('/:namespace', function(req,res){
res.render('chatLayout', { title: 'Welcome to the ' +
req.params.namespace +" room!"}), {namespace: req.params.namespace };

});

客户端js

   var room= io.connect('http://localhost:3000/' +namespace);

哈巴狗文件

    doctype html
html(lang='en')
head
title= title
meta(charset='utf-8')
meta(name='viewport', content='width=device-width, initial-scale=1')
<script
src='https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js'>
</script>
<script src="/gameChat.js"></script>
link(rel='stylesheet', href='/style.css')
body
<h1>#{title} </h1>
<div id= "chat">
<div id= "chat-window">
<div id= "output"></div>
<div id= "feedback"></div>
</div>
<form id ="form">
<input id= "handle" type= "text" placeholder="Handle"/>
<input id= "message" type = "text" placeholder="Message"/>
<button id= "send">Send</button>
</form>
</div>

最佳答案

您应该将变量发送到 res.render 的第二个参数:

app.get('/:namespace', function(req, res) {
res.render('chatLayout', {
title: 'Welcome to the ' + req.params.namespace + " room!",
namespace: req.params.namespace
});

});

并从模板调用命名空间

关于node.js - 如何向前端js传递/使用req.params,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55974844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com