Articles of 达帕格

请求正文中未定义由jQuery填充的值

我正在创build一个简单的快速应用程序,我有一个如下所示的表单: form(action="/user/add" method="POST") input(type="text" id="name" name="name" disabled) input(type="email" id="email" name="email") input(type="submit" value="submit") name字段需要用jQuery填写,不能改变,所以这里是它的样子(它是一个引导模式)。 a(href="#" data-toggle="modal" data-target="#modal" data-name= valuefromdb) $("#modal").on("show.bs.modal", function (event) { var button = $(event.relatedTarget); var name = button.data("name"); var modal = $(this); modal.find(".modal-title").text("Edit person" + name); modal.find(".modal-body input#name").val(name); }); 这工作正常,并使用正确的名称填充input。 但是,当我尝试提交它并获取路由中的值时,我得到的名称的值未定义,但电子邮件通过罚款,因为它是用户填充。 router.post("/add", function (req, res, next) { let person = { name: req.body.name, […]

Node.js Express app.get:浏览器想要打开链接

我有以下问题。 在我的node.js应用程序中,用户点击发送到我的app.js的链接。 链接是一个文件名。 在我的app.js中,我可以读取参数,但浏览器仍然尝试在浏览器中打开文件 app.get('/files/:file', function(req, res) { console.log('Would handle ' + req.params.file); }); 那么我需要做什么来阻止浏览器打开链接呢?

布局玉导航栏

我想有一个导航栏,这是没有硬编码,但从控制器采取其项目。 我的问题是,虽然我不想在每个页面控制器中设置导航栏项目,但只能在一个文件中使用它们,并将它们用于具有相同布局的所有页面。 所以这是我的layout.jade doctype 5 html(lang='en') head meta(charset='UTF-8') meta(name='viewport', content='width=device-width') title= '™DreamTechnologies' block css link(rel='stylesheet', href='/components/bootstrap/dist/css/bootstrap.min.css') include styles.css block js script(src='http://localhost:35729/livereload.js') body nav.navbar.navbar-inverse(role="navigation") .container-fluid .navbar-header a.navbar-brand(href="/") |HOME .collapse.navbar-collapse ul.nav.navbar-nav each item in navitems li a(href=item.link) =item.content div.page-header h1 =title block content 我的问题是如何parsing这些navitems,所以我在每一页上都有。 现在我只是在每个控制器中使用它: exports.index = function(req, res){ res.render('home/index', { title: '™DreamTechnologies', navitems: [ {link: 'this', […]

当浏览器请求“element.html”时用express来提供编译好的jade

我的layout.jade包含常规html聚合物元素的链接导入,如下所示: link(rel="import" href="/bower_components/paper-tabs/paper-tabs.html") 我的灵感来源于我的聚合物元素写在玉石,但现在我不知道如何为浏览器(通过从index.jade提供的页面)请求“paper-tabs.html”服务他们。 我基本上试图找出如何将玉元素服务到玉布局文件? 我不认为这是可能的 link(rel="import" href="/foo-element.jade") 有没有人得到这个工作?

我怎样才能更新呈现的玉器进度?

我有一个表单小express.js应用程序。 提交时,它会运行一个python脚本,运行时需要5分钟才能运行,并将消息转储到stdout。 现在我可以调用它,并logging输出到控制台就好了。 我希望这些消息填充我的玉模板中的跨度区域(id = results),直到完成。 路线: router.post('/create', function(req, res) { res.render('build', function(err, html) { res.send(html); var options = { mode: 'text', pythonPath: '/usr/bin/python', pythonOptions: ['-u'], scriptPath: '/test', args: ['test', '-t', req.body['type'], '-s', req.body['num'], req.body['name']] }; var shell = new py('build', options); shell.on('message', function (message) { console.log(message); }); shell.on('error', function(err) { console.log(err); }); }); }); […]

在express.js中将内容追加到Pug-Jade已经呈现的页面

我使用Pug / Jade模板在express.js中呈现我的内容。 我想在客户端创build一个无限的滚动。 当用户按下一个button,我可以通过ajax调用追加更多的内容使用帕格/玉文件在同一页面? 我知道,可以返回客户端的结果,并在那里呈现,但我问,如果有可能在服务器端。 像这样的东西: cliend-index.js $('#load-more').click(function() { $.ajax({ type: 'POST', url: '/get_more_posts', dataType: 'json', data: { last_received_id: last_received_id }, success: function() { // do nothing as the content rendered on the server side }, error: function() { // generate an error } }); }); 断绝-app.js app.post('/get_more_posts', function(req, res) { db.select_post({ last_received_id: req.body.last_received_id […]

如何在不使用会话和查询string的情况下使用节点js在另一个jade模板上redirect和读取数据

我想从一个视图发送数据到另一个,但我只能redirect,但我的要求是redirect,并立即发送数据到另一个玉template.I使用下面的代码为: customer.js var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function (req, res) { res.render('customers', { title: 'Express' }); }); router.post('/customers/add', function (req, res) { var name = req.param('name');// req.body.name;//second way var address = req.param('address'); var email = req.param('email'); var phone = req.param('phone'); res.redirect('/ViewCutomerDetail'); }) module.exports = router; 现在我想要发送名称,地址,电子邮件,电话到另一个视图说“ViewCutomerDetail”,但我怎么能做到这一点“ViewCutomerDetail”我使用下面的代码 […]

JQuery和jade从Nodejs读取渲染数据

我正在使用Jade框架作为前端Nodejs&后端expression 所以当我使用数据呈现视图时,我无法使用JQuery访问这些数据 低于我的服务Nodejs呈现与简单的数据= X视图 router.get('/test',function (req,res,next) { res.render('test',{data : 'x'}); }); 所以testing页面将显示没有任何问题,所要做的是使用Jquery方法读取呈现的数据 footer .pull-right | Gentelella – Bootstrap Admin Template by a(href='https://colorlib.com') Colorlib .clearfix // /footer content // jQuery script(src='/vendors/jquery/dist/jquery.min.js') alert(data) // no alert or action happen 但是说错误(数据的未知variables) 而且,我可以从玉石本身读到它 有什么build议么? 谢谢

Express是否要求我使用POST路由删除?

以下代码在单击并确认button时成功删除logging: 路由器(Express): router.post('/meetings/delete/:slug', catchErrors(meetingController.deleteMeeting)); 控制器: exports.deleteMeeting = async (req, res) => { const slug = req.params.slug; const meeting = await Meeting.remove({ slug }); req.flash('success', 'meeting successfully deleted!'); res.redirect(`/meetings`); }; 查看模板(帕格/翡翠): form.delete-meeting-form(method='POST' action=`/meetings/delete/${meeting.slug}?_method=DELETE`) input.button.button–delete(type='submit' value='DELETE MEETING' onclick='return confirm("Are you sure you want to delete this meeting? (Cannot be undone)")') 此代码原样工作。 然而,我似乎很奇怪,我似乎需要使用POST路由,以完成我的DELETE请求。 当我尝试使用router.delete来形成路由时,它不起作用。 我明白,HTML不支持DELETE和PUT / PATCH请求,但为什么命名我的Express路由delete是一个问题? 我做错什么了吗?

奇怪的快速Jade视图caching行为

刚刚更新我的Node.js和Express版本分别为0.10.21和3.4.4,现在我看到一些奇怪的视图caching在开发(和生产)。 看起来从其他视图(或者所有视图?)中包含的视图生成的html被caching。 例如: layout.jade doctype 5 html head title= title meta(name="viewport", content="width=device-width, initial-scale=1.0") link(rel='stylesheet', href='/stylesheets/style.css') body #container include header block content include footer header.jade – var headerClass = "" if pageVars.headerOverBackground – headerClass = "overbackground" #header(class=headerClass) [snip] somepage.jade extends layout block content [snip] 我第一次调用/ somepage ,传递pageVars.headerOverBackground设置为true,视图呈现正确。 如果我使用相同的布局和页眉访问不同的URL / someotherpage ,传入pageVars.headerOverBackground设置为false,我仍然可以看到header.jade部分呈现,就像它在上一页(与“overbackground”类在#header上),就像pageVars.headerOverBackground仍然是一样的。 但是这是错误的,我有console.log()来certificate它。 难道我做错了什么? 我只是非常困惑? 我已经在开发和生产模式中运行Node,甚至还用Express来运行它 app.disable('view […]