玉服务器端传递的变量在浏览器中为空

2024-04-26

我有一个奇怪的问题,即传递给 jade 的变量在浏览器中为空, 似乎传递的变量为空,但事实并非如此

Nodejs代码(整个路由代码):

    exports.sensorsettings = function(req, res){
    if (!req.session.username) {
        // if false render
        res.render('login', { logo: 'img/owl.png', id: 'home', brand: brand })
    } else {
        if(!req.query.sid) (res.redirect('/dashboard'));
        // get sid information from database
            db.collection('sensors').findOne({sid:req.query.sid}, function(err, result) {
                console.log('this is result:' + result);
                if (result) {
                    console.log('this is result:' + result.name);
                    result= JSON.stringify(result);
                    res.render('new-sensor-settings', { username: req.session.username, name:result.name,
                        ipaddress: result.ipaddress, desc: result.desc, snmpcom: result.snmpcom, snmpver: result.snmpver,
                        snmpport: result.snmpport, snmpifindex: result.snmpifindex, ncusername: result.ncusername,
                        ncport: result.ncport})
                };
                if (!result) res.redirect('/errors?err=db');
            });
        // if true redirect
        res.render('new-sensor-settings', { username: req.session.username, id: 'home', brand: brand })

    }
};

玉文件(全表):

form.form-horizontal
                    .tab-content(style='padding: 0;')
                        #account-details.tab-pane
                            .row-fluid
                                .span6
                                    .control-group
                                        label.control-label Community
                                        .controls
                                            input#s_snmpcom.span10(type='text', value=snmpcom)
                                            span.btn-action.single.glyphicons.circle_question_mark(style='margin: 0;', data-toggle='tooltip', data-placement='top', data-original-title='Specify your device Public Community name (For SNMP version 2c)')
                                                i
                                    .control-group
                                        label.control-label Port Number
                                        .controls
                                            input#s_snmpport.input-mini(type='text', value=snmpport)
                                            span.btn-action.single.glyphicons.circle_question_mark(style='margin: 0;', data-toggle='tooltip', data-placement='top', data-original-title='Specify your device SNMP port number, Default number is 161 ')
                                                i
                                .span6
                                    .control-group
                                        label.control-label Version
                                        .controls
                                            select#s_snmpver.selectpicker.span6(data-style='btn-default', style='display: none;')
                                                option 1
                                                option 2c
                                                option 3
                                    .control-group
                                        label.control-label IfIndex
                                        .controls
                                            input#s_snmpif.input-mini(type='text', value=snmpifindex)
                                            span.btn-action.single.glyphicons.circle_question_mark(style='margin: 0;', data-toggle='tooltip', data-placement='top', data-original-title='Specify your SNMP interface index number.it could be found at interface details of your device')
                                                i
                            hr.separator.bottom
                            .row-fluid
                                .span6
                                    .control-group
                                        label.control-label Username
                                        .controls
                                            input#s_ncuser.span10(type='text', value=ncusername)
                                            span.btn-action.single.glyphicons.circle_question_mark(style='margin: 0;', data-toggle='tooltip', data-placement='top', data-original-title='Specify your device Netconf username, it could be on of defined username on your device with readonly access.')
                                                i
                                    .control-group
                                        label.control-label Port Number
                                        .controls
                                            input#s_ncport.input-mini(type='text', value=ncport)
                                            span.btn-action.single.glyphicons.circle_question_mark(style='margin: 0;', data-toggle='tooltip', data-placement='top', data-original-title='Specify your device ssh port number, Default number is 22 ')
                                                i
                                .span6
                                    .control-group
                                        label.control-label password
                                        .controls
                                            input#s_ncpass.span10(type='password', value='')
                                            span.btn-action.single.glyphicons.circle_question_mark(style='margin: 0;', data-toggle='tooltip', data-placement='top', data-original-title='Enter the password of Netconf username')
                                                i
                            .form-actions(style='margin: 0;')
                                button.btn.btn-icon.btn-primary.glyphicons.circle_ok.pull-right(type='submit')
                                    i
                                    | Save changes
                                button.btn.btn-icon.btn-default.glyphicons.circle_remove.pull-right(type='button')
                                    i
                                    | Cancel
                        #account-settings.tab-pane.active
                            .row-fluid
                                .span3
                                    strong Sensor General Settings
                                    p.muted Configure Sensor basic settings here,all fields are required.
                                .span9
                                    label(for='s_name') Name
                                    input#s_name.span10(type='text', value=name)
                                    span.btn-action.single.glyphicons.circle_question_mark(style='margin: 0;', data-toggle='tooltip', data-placement='top', data-original-title='Give your sensor a name so you could call it!')
                                        i
                                    .separator
                                    label(for='s_ip') IP Address
                                    input#s_ip.span10(type='text', value=ipaddress , placeholder=''  )
                                    span.btn-action.single.glyphicons.circle_question_mark(style='margin: 0;', data-toggle='tooltip', data-placement='top', data-original-title='Enter sensor IP address here')
                                        i
                                    .separator
                                    label(for='s_offline') Sensor Offline
                                    input#inputPasswordNew.span12(type='text', value='', placeholder='if your sensor is down for maintenance, change its status to offline')
                                    .separator
                                    label(for='s_description') Description
                                    input#s_description.span12(type='text', value=desc)
                                    .separator
                            .form-actions(style='margin: 0; padding-right: 0;')
                                button.btn.btn-icon.btn-primary.glyphicons.circle_ok.pull-right(type='submit')
                                    i
                                    | Save changes

注意:除了用户名变量之外的所有内容都不起作用。我尝试为这些变量分配一个静态值(例如名称:'test'),但它也不起作用。


很难说你想在这里完成什么,但这是一个开始 观点。我所做的主要更改是删除这两行

// if true redirect
res.render('new-sensor-settings', { username: req.session.username, id: 'home', brand: brand })

因为这些是在回调之前执行的db.collection.findOne,从而阻止了发送响应时 内res.render被称为。我只是猜测这些线是 无关的,可能是函数先前迭代的剩余部分。如果 它们不是偶然的,请提供有关该功能的更多信息 应该做。

我所做的其他小改动:

重新缩进 2 个空格。

我在周围添加了大括号if(!req.query.sid)陈述。 (很好 有一条线if没有大括号的语句,但它更少 可维护,所以我个人的偏好是始终添加它们。)

I added return在发送响应的语句前面。自从res.redirect and res.render语句都放在其末尾 各自if块,其中两个不再有机会执行。 所以return这里并不是严格意义上真正必要的 - 这只是我个人的 优先使用它们,明确表示现在已经做出了回应 已发送,在此路由中不应执行进一步的代码。

I moved if(!result)进入附加到前一个块的 else 块中if(result)

exports.sensorsettings = function(req, res){
  if (!req.session.username) {
    // if false render
    return res.render('login', { logo: 'img/owl.png', id: 'home', brand: brand })
  } else {
    if(!req.query.sid){ (return res.redirect('/dashboard')); }
    // get sid information from database
    db.collection('sensors').findOne({sid:req.query.sid}, function(err, result) {
      console.log('this is result:' + result);
      if (result) {
        console.log('this is result:' + result.name);
        // Problem here too:
        result= JSON.stringify(result);
        // result is now a string, trying to access properties will be undefined
        return res.render('new-sensor-settings', { username: req.session.username, name:result.name,
          ipaddress: result.ipaddress, desc: result.desc, snmpcom: result.snmpcom, snmpver: result.snmpver,
          snmpport: result.snmpport, snmpifindex: result.snmpifindex, ncusername: result.ncusername,
          ncport: result.ncport})
      } else {
        return res.redirect('/errors?err=db');
      };
    });
  }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

玉服务器端传递的变量在浏览器中为空 的相关文章

  • RoboMongo:不显示所有文档

    当我打开集合时 它仅显示前 50 个文档 而不是全部文档 如何使 RoboMongo 显示集合中的所有文档 最好是自动 罗博蒙戈结果 https i stack imgur com K5fn8 png 2019 年 12 月 6 日更新 最
  • 快递+护照+会话。为每个页面加载执行查询

    我正在使用 Express 4 2 0 和 Passport 0 2 0 我使用的express session中间件是1 2 1 我对节点身份验证比较陌生 所以请耐心等待 我注意到 对于每个页面加载 护照正在执行数据库请求 Executi
  • 刷新后,socket.io 客户端多次侦听同一事件

    我得到了一个包含项目表的母版页 成功后表数据将不断刷新socket io与服务器的连接 单击表中的某个项目 该项目的 id 将传递到服务器 时 将使用 ajax 加载子视图 并通过侦听来自服务器的事件不断刷新该子视图 现在的问题是 通过选择
  • 使用 python-shell 持续交换数据

    我需要从节点运行一些 python 脚本 由于我的 python 脚本使用复杂的结构 我认为如果只加载这些结构一次 然后使用这些结构运行一些特定的脚本 任务 会更好 在节点上 我想永远运行一个脚本 或者直到我说它可以终止 并继续向该脚本发送
  • 规则和夏令时

    我在用着rrule https github com jakubroztocil rrule在我的数据库中创建和存储事件 一切正常 直到我发现我的重复事件与 3 月 31 日之后有一个小时的差异 在法国 这一天我们进行夏令时更改 实际上 我
  • 在 iframe/对象标签内运行时更新初始路由器 url

    我目前正在容器 主 Vue 应用程序的对象标签 iframe 也可以工作 内渲染 Vue 应用程序 首先 我设置一个文件服务器 为该容器或请求的子应用程序提供服务 以在 div 内呈现 为了简单起见 我将仅显示 Node Express 服
  • 使用 NodeJS 从 GCP 存储下载对象

    我在用着 google cloud 存储 https www npmjs com package google cloud storage从节点应用程序访问 Google Cloud Storage 存储桶内的对象 但我无法使其工作 我已在
  • NodeJS 内存增长 - (系统)内存泄漏?

    我在我们的生活环境中遇到了奇怪的内存泄漏 其中 system 堆中的对象不断增长 堆转储 Here is a memory dump where the memory usage grew to 800MB 请注意 该内存保留在Genera
  • 如何使用restify上传文件

    我正在尝试使用 Restify 模块将图像文件上传到 Rest 服务器 更具体地说是 Confluence 但出现断言错误 我不确定我是否使用正确的方法将文件上传到 REST 服务器 有人能指出我正确的方向吗 这是我的尝试 var rest
  • npm install -D sass-loader node-sass Vue.js 2021

    您好 问题是为 Vue js 设置 SASS 我跑 Node js 15 7 0 Vue js vue cli 4 5 11 这是我在运行此命令时在控制台中遇到的错误 npm install D sass loader 节点 sass np
  • 设计 Javascript 前端 <-> C++ 后端通信

    在我最近的将来 我将不得不制作一个具有 C 后端和 Web 前端的系统 要求 目前 我对此了解不多 我认为前端将触发数据传输 而不是后端 所以不需要类似 Comet 的东西 由于在该领域的经验可能很少 我非常感谢您对我所做的设计决策的评论
  • 从React Redux中的package.json获取版本号(create-react-app)

    OP 编辑 如果其他人遇到此问题 该应用程序是使用创建的创建反应应用程序 https github com facebookincubator create react app 这限制导入到 src 文件夹内 但是如果你将react scr
  • 如何使用nodejs/aws-sdk将base64编码的pdf直接上传到s3?

    我正在尝试使用以下代码将 base64 编码的 pdf 上传到 S3 而无需将文件写入文件系统 const AWS require aws sdk exports putBase64 async object name buffer buc
  • 如何使用 exceljs 读取 .xls 文件?

    我无法使用 exceljs 库读取 xls 文件 我还尝试使用 fs 更改 xlsx 中的文件后进行读取 但仍然无法从该文件中读取数据 有没有办法使用 exceljs 读取 xls 文件 虽然它的文档没有明确说明 exceljs仅支持 XL
  • dotnet 核心并行或同时构建

    In this https github com gatimus DotnetParallelBuild解决方案我有2个应用程序 AppA AppB共享类库Shared 我尝试过自动化这些并行的构建 运行电源外壳 https github
  • Angular2 - 在 SystemJS 中导入第 3 方 javascript

    由于某种原因 fileSaver 没有被映射 angular2 jwt 工作正常 I did npm install file saver save获取文件保护程序 然后按如下方式引用它 我有一个 gulp 任务将 js 文件移动到 lib
  • 节点未被识别为内部或外部命令,但位于 PATH 中

    尽管我遵循了以下建议 使用phonegap cordova时 node 不被识别为内部或外部命令 可操作程序或批处理文件 https stackoverflow com questions 23412938 node is not reco
  • 定时器内嵌套异步等待 - 不返回所需的值

    我必须使用 Mocha 和 chai 测试来测试端点的响应 下面是相同的代码 async function getData userId let response let interval setInterval async gt resp
  • 从 bash 脚本运行节点

    很简单 我正在尝试使用 cron 自动运行 nodejs 脚本 但是脚本本身似乎无法运行该文件 我的脚本很简单 usr bin env node node var node assets js update js 但是 在运行此命令时 它返
  • Express js 错误:“express 已弃用 res.sendfile:请改用 res.sendFile”

    设置路径的正确方法是什么 在我的应用程序中 我使用此代码设置发送文件的路径 app get function req res get put post delete res sendfile dirname client views ind

随机推荐

  • 如何在测试执行之前强制使用 Spring 上下文的新版本

    我用SpringJUnit4ClassRunner用于编写集成测试 我也用 DirtiesContext对于将上下文置于损坏状态的测试 并且效果很好 但现在我有一个测试 在静态初始化器中设置一个重要的 SystemProperty 该初始化
  • 如何从电子邮件地址检索姓名

    使用javascript 我们如何从字符串中删除 gmail com或 aol com 以便只留下名称 var string email protected cdn cgi l email protection 只会是 johdoe 吗 我
  • 如何在Android Studio 1.0.0中更改logcat字体大小? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 如何在Android Studio 1 0 0中更改logcat字体大小 我只找到了在 Android Studio 中
  • Lambda 演算和教会数字混淆

    我正在尝试了解 lambda 演算和丘奇数字的基础知识 我已经进行了大量的阅读和练习 但我似乎一直试图了解某些函数是如何工作的 我坚持的例子如下 也许有人可以解释我哪里出了问题 1 的丘奇数可以表示为 f x f x The exponen
  • 如何将 Python 中的 MS Botframework 部署到 Azure

    我一直在玩 Botframework 并尝试从 git 上传示例代码https github com Microsoft botbuilder python tree master samples EchoBot with State ht
  • 在 Mobile Safari 中重用 HTML5 音频对象

    我希望在 iPad 上的 Mobile Safari 中运行的 Web 应用程序上播放一个简短 小于 1 秒 的音频文件 以响应用户输入 同时将事件和音频播放之间的延迟降至最低 在页面重新加载之间可以多次触发播放 因此我想缓存音频文件 以下
  • Django allauth Facebook 本地开发

    我在用着Django allauth https github com pennersr django allauth对于正在开发的网站的 Facebook 身份验证 并进行了相应的设置 在 facebook 的 facebook 应用程序
  • 在 PyGTK 中,显示 PNG 文件的简单方法是什么?

    以下 PyGTK 代码在窗口中显示 PNG 文件 是否有更简单或更好的方式来显示 PNG 文件 例如使用 gtk DrawingArea 例如 如何调整文件大小 import gtk import pygtk pygtk require 2
  • 使用 datashader、holoviews 和 bokeh 进行地理映射时出现问题

    我正在尝试使用全息视图 数据着色器和散景将谷歌手机历史记录位置映射到地图上 大部分与 datashader 网站中给出的示例非常相似 但是当我这样做时 地图叠加不起作用 因为纬度 经度被破坏了 import datashader as ds
  • igraph (R) 中仅在根和终端顶点上添加标签?

    inst2 c 2 3 4 5 6 motherinst2 c 7 8 2 10 11 km c 20 30 40 25 60 df2 data frame inst2 motherinst2 df2 cbind df2 km g2 gra
  • 带有任意 AND 子句的动态 spring data jpa 存储库查询

    我在用着Spring data jpa repositories 需要提供不同字段的搜索功能 搜索前输入字段是可选的 我有 5 个字段EmployeeNumber Name Married Profession and DateOfBirt
  • java中如何销毁进程

    我写了下面的代码 要从 Java 应用程序运行 bat 文件 我使用 process exec 但蝙蝠有时可能会挂起 所以我需要为此过程设置一个超时 我启动一个新线程并在线程中新建一个进程 我在线程中设置超时 并在超时时杀死线程 但我发现超
  • 在 React 组件中使用绝对路径

    如何使用根目录中的绝对路径并更改根目录来导入组件 import Modal from project app src Components Modal import Main from Constants 我想要将根目录更改为我可以从 sr
  • 如何通过更新和多重选择将多个输入构建到我闪亮的应用程序中?

    我正在构建一个flex dashboard shiny应用程序与datatable并尝试建立两个输入作为此选择datatable每个选项都有一个 全部 选项 第一个问题是如何限制第二个选择 user 通过选择第一选择 team 然后 使用这
  • Javascript 生成器:理解它们

    我很确定我对生成器的理解本质上是被破坏的 所有在线资源似乎都是冲突的 这导致了极其困难和令人困惑的学习体验 据我了解 yield关键字使当前正在执行的代码块能够等待一个值而不是抛出要在回调内执行的剩余代码 因此 正如大多数教程所指出的 您可
  • URI/URL 和 String 有什么区别?

    这是出于好奇 不需要代码 我尝试使用世界上最好的搜索引擎来获取答案 但没有发现任何有价值的东西 有什么区别URI URL以及表示该 URI URL 的字符串 为什么我们必须解析它 将字符串解析成什么URI URL对字符串进行不同的处理 为什
  • 为什么 Mocha 测试用例应该是无状态的?

    这是一个常见的建议 即Mocha 测试用例不应共享状态 鉴于 Mochas 测试用例执行的强烈顺序性 我真的不理解这个建议 还有更多 我认为这很可疑 如果测试用例 即使是异步测试用例 严格地一个接一个地执行 则不存在时间竞争问题或其他不可预
  • 因登录失败 3 次而禁用帐户 [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 嵌套 svn 存储库

    我在存储库中有一个 项目 A 但在该项目中 我使用了一个托管在 Google Code 上的库 我的问题是 有什么办法可以让该库文件 挂钩 到 Google Code SVN 同时将我的项目放在我的存储库中 它是该库的父级 这样我就可以在决
  • 玉服务器端传递的变量在浏览器中为空

    我有一个奇怪的问题 即传递给 jade 的变量在浏览器中为空 似乎传递的变量为空 但事实并非如此 Nodejs代码 整个路由代码 exports sensorsettings function req res if req session