Articles of 表示

NodeJS:发送HTTPS请求,但获得HTTP

我正在使用NodeJS构build一个网站,并将其部署到Heroku。 但是,当我打开网站,出了问题。 这是问题: 代码:在我的网站的主要源文件中: app.get('/', (req, res) => { var data = { rootURL: `${req.protocol}://${req.get('Host')}`, }; res.render('home.html', data); }); 然后,在home.html中,我包含以下脚本: <script type="text/javascript"> $.getJSON('{{rootURL}}'+'/about', {}, function(data){ // Code here is deleted for now. }).fail(function(evt) { // Code here is deleted for now. }); </script> 在这里,我使用hbs模板,所以{{rootURL}}等同于'home.html'页面提供的'data'对象中的'rootURL'属性。 “/ about”是我为我的网站devise的API之一。 它基本上发回有关网站本身的东西,这个信息被包装在JSON中。 那么,问题就来了。 该代码在本地正常工作,并且在向HTTP发送HTTP请求而不是HTTPS时运行良好。 但是,如果我向HTTPS发送HTTPS请求,则会出现“混合内容”错误: Chrome Console中出现错误。 然后,我切换到开发人员工具中的“元素”选项卡,我看到: 架构是HTTP,而不是HTTPS! 我在这里很困惑。 […]

在Express中编辑全局数组

我想更改从应用程序本地variables的数组中的一个项目,我不知道如何做到这一点 这是我所设定的全球性 app.locals.products=[{name: 'a',url: '/a' }, {name: 'b',url: '/b' }, {name: 'c',url: '/c' },… 我想编辑它们,并从路线设置有效的产品,并做这样的事情 products:[{name: 'a',url: '/a' active:true}], 但是当我这样做,它会删除所有其他项目,并只设置我写的产品。 有没有办法只编辑我需要的一个,并保持其余的不变?

如何使用Node.js和Express在JavaScript中使用GET请求更改页面?

在这个应用程序,用户有一个表,他们可以input数据。 每行有一个“编辑”button,当他们点击那个button时,我想把他们带到一个叫“/ update”的新页面,在那里他们可以修改那个行的值。 我现在已经这样做了,当他们点击更新button时,它会运行editRow函数,传递表的id和行中的数据。 但是,我无法弄清楚如何让路线正常工作。 我使用的是Node.js,Express,Handlebars,但没有使用 jQuery。 app.js (服务器端) app.get('/update', function(req,res){ var context = {}; context.tableID = req.ID; context.element = req.element; res.render('update', context); }); update.handlebars <h1>test for now</h1> main.handlebars <!doctype html> <html> <head> <title>Workout Tracker</title> <link rel="stylesheet" href="css/style.css"> <script src="scripts/buttons.js" type="text/javascript"></script> </head> <body> {{{body}}} </body> </html> buttons.js (客户端) function editRow(tableID, element) { var httpRequest; httpRequest […]

ExpressJS request.params和request.body为空

试图发送一个简单的发布请求, body属性是空的对象{} 。 有人知道为什么 const compression = require('compression') const bodyParser = require('body-parser') const express = require('express') const app = express() app.set('port', process.env.PORT) // Support JSON-encoded and encoded bodies. app.use(bodyParser.json()) app.use(bodyParser.urlencoded({ extended: true })) app.post('/api/' + APIVersion.latest() + '/post-job', (req, res) => { console.log(req.body) res.json({ hey: 'hey' }) }) // Start the server. app.listen(app.get('port'), err => […]

如何使用nodeJS库从webAPi获取数据?

我是新的nodeJS,我想从webApi使用nodeJS获取数据,例如,当我打电话给 MYDOMAIN / getAllStudents 我想要所有的学生数据,当我做 MYDOMAIN /学生/ 4 那么我只想要ID = 2的学生的数据 -挑战- 使用快递我可以指定这样的路线 var app=express(); app.get('/getAllStudents',(request,response)=>{ console.log('we are listening !!!'); }).listen(8080); 但是当我尝试在callback函数内进行调用时,我无法获取值,我的完整代码 var http=require('http'); var express=require('express'); var app=express(); var options={host: '172.17.144.6', port: 8394, path: '/api/Masterdata/getAllStudents', method: 'GET'} app.get('/getAllStudents',(request,response)=>{ http.get(options,(res)=>{ res.on('data', function (chunk) { console.log('BODY: ' + chunk); }); }); console.log('we are listening !!!'); }).listen(8080); 我想要实现的是,当我打mydomain/getAllStudents我想获得所有的数据。 […]

禁用关键错误的快速error handling

app.use(function (req, res, next) { throw new Error('critical'); }) 使快速服务器捕捉到一个严重的错误,并输出它,而我希望它崩溃。 添加error handling程序不会replace默认处理程序。 对于严重错误,如何禁用快速error handling?

当需要expression时,它是一个函数还是一个对象?

当我将快递带入我的项目并创build一个新的快递应用程序时,我从这两行代码开始 var express = require('express'); var app = express(); 这在我看来像express是一个函数,返回我创build的app对象。 但后来我可以使用express.static() ,这使得我认为express是static方法的一个对象。 app.use(express.static('public')); 当我需要express它似乎logging一个对象,所以我很好奇如何express()返回的东西,如果它是一个对象? 我最后的猜测是express是一个函数,但是因为这是javascript, 函数是对象 ,它也可以有属性? 这些接近准确吗?

无法安装快递和包裹

嘿,对不起,如果这个问题是荒谬的,但我不能在NodeJS开始处理,我尝试安装npm install -gn global,并尝试在本地安装express,但是我不能这样做,我正在尝试像npm install express在设置我的本地path之前

Handlebars和Node.js:{{#if!user}}然后显示loginbutton

我正在创build一个使用Node.js,Express和Handlebars作为模板引擎的loginvalidation应用程序。 如果没有用户login,我希望我的仪表板显示“login”button。 如果用户login,我不希望它显示。 我试过这个没有login… {{#if user}} <a type = "button" class = "btn btn-default" href = "/users/login">Log In</a> {{/if}} 有趣的是,这隐藏了元素。 然后,当我纠正了代码,它应该是…这… {{#if !user}} <a type = "button" class = "btn btn-default" href = "/users/login">Log In</a> {{/if}} 我得到这个错误, 我以前从来没有使用过车把,所以我是盲目的。 任何帮助提前感激!

Javascript – 如何用promise返回对象

我试图返回一个具有特定结构的对象,但我不能返回该对象。 正如你可以在代码中看到,如果我打印承诺它打印数据,但如果我打印外面是空的…为什么? 我怎样才能返回对象的部分? var parts = []; var part = []; var articles = []; part.push(request.query("SELECT u_order, u_familia, u_part, u_type FROM u_part (nolock) where u_order <'92' and u_order <> '100'")); return Promise.all([Promise.all(part)]).then(function(listOfResults) { for(var i=0; i<listOfResults[0][0].length; i++) { articles.push(request.query("SELECT st.u_posic, sc.ref, sc.qtt, sc.design FROM st INNER JOIN sc ON st.ref = sc.ref where sc.ststamp ='"+stamp+"' […]