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! 我在这里很困惑。 […]

如何在Node.js中使用简单对等模块?

我是Node.js平台的新手,想在我的应用程序中使用https://www.npmjs.com/package/simple-peer模块。 但不知道如何在我的应用程序中实现。 我无法弄清楚他们的文档。 是否有任何资源可以显示与Node.js或Node + Express一起使用该模块的过程?

Webpack不包括我们所有的js和jsx文件,甚至是那些在同一个目录下的文件

我们正在尝试升级使用WebPack构build的React.js应用程序。 在我们的升级中,我们正在从Webpack 1.0迁移到2.0,并且我已经对升级进行了“必要的”更改。 但是,当我查看包含的文件时,它正在构build和编译,它是以前包含的文件的一个非常小的规模。 例如,我们在React Flux Actions目录中有34个文件。 有些文件的.js扩展名是.jsx。 但是,在这34个文件中,只有1个出现在构build中。 另一个发生了什么事情33.这个扩展名是.js,但是那个目录下还有更多的.js文件。 我错过了什么? 这是我们的主要configuration文件。 var path = require('path'); var webpack = require('webpack'); var StringReplacePlugin = require("string-replace-webpack-plugin"); var Environment = require('./js/environment'); module.exports = { entry: [ './js' ], output: { path: path.join(__dirname, 'build'), filename: 'bundle.js', }, plugins: [ new StringReplacePlugin(), new webpack.LoaderOptionsPlugin({ options: { tslint: { emitErrors: true, […]

request-promise未处理的拒绝RequestError:错误:ETIMEDOUT

嗨,我尝试编写一些下载function的承诺要求,但如果我有一个超时,我不能处理这个错误,我尝试一些例子,但仍然有这个错误 Unhandled rejection RequestError: Error: ETIMEDOUT at new RequestError (/home/parse/node_modules/request-promise-core/lib/errors.js:14:15) at Request.plumbing.callback (/home/parse/node_modules/request-promise-core/lib/plumbing.js:87:29) at Request.RP$callback [as _callback] (/home/parse/node_modules/request-promise-core/lib/plumbing.js:46:31) at self.callback (/home/parse/node_modules/request/request.js:186:22) at emitOne (events.js:101:20) at Request.emit (events.js:191:7) at Timeout._onTimeout (/home/parse/node_modules/request/request.js:816:16) at ontimeout (timers.js:380:14) at tryOnTimeout (timers.js:244:5) at Timer.listOnTimeout (timers.js:214:5) 我的代码 function下载: function downloadPhoto(url,uploadUrl,name){ return new Promise(function(resolve, reject){ rp(url,{timeout:15000},function(e){if(e) reject(e);}).on('error', function(e){return reject(e);}).pipe(fs.createWriteStream(name+'.jpg')).on('finish', () => { //console.log('done […]

Express MongoDB find()基于_id字段

所以在我的快速应用程序,我试图find()基于我的_id字段。 看下面我的MongoDBlogging。 { "_id": { "$oid": "58c2a5bdf36d281631b3714a" }, "title": "EntertheBadJah", "subTitle": "Lorem ipsum dolor", "thmbNailImg": "", "headerImg": "", … BLAH BLAH BLAH 当我使用.find( _id: id ) ,我的id参数= 58c2a5bdf36d281631b3714a 。 我将如何转换/使用这个来获得我的MongoDBlogging? 这是我的快递电话: //GET ARTICLE app.get('/api/article', (req, res) => { var id = req.query.id var article = []; db.collection('articles') .find( _id: id ) .then(result => { article […]

使用nodejs脚本将GB的数据从MongoDB迁移到Cassandra的最佳方法

我在MongoDB中有一个很大的集合。 希望通过在该数据上运行一些业务逻辑nodejs脚本来迁移所有数据到cassandra。 做这个的最好方式是什么 ? 我编写了一个脚本,在mongo的单个请求中处理5000个文档,处理数据并将文档插入到cassandra中。 经过40-50次迭代需要很多时间。 CPU使用率显示100%。 这是因为很多callback发生? 我是节点j的新手,所以不能完成任何事情。var cassandra = require('../ models / tracking_cassandra'); var TrackingEvents = require('../ models / tracking_mongo_events'); var counter = 0; var incr = 5000; var final_counter = 0; var start_point = function (callback){ TrackingEvents.count(function(err, data){ final_counter = data; TrackingEvents.getEventsByCounter(counter, function(counter, obj) { var prevId = obj[0].toObject()._id; getMessagesFromMongo(prevId, callback); }); […]

无法编译简单的TypeScript node-ts示例

我正在学习https://github.com/TypeStrong/ts-node 。 我写了两个文件作为一个简单的例子。 它们都在同一个目录中,它目前不在package.json中 /package.json /src/build-lib/run-ts.js /src/build-lib/Test.ts 运行ts.js require('ts-node').register(); const Test = require('./Test.ts').Test; // Tried with and without .ts extension const tester = new Test(); tester.log('Message'); Test.ts export class Test { log(message: string) { console.log(`Test ${message}`); } } 我正在运行以下脚本: ts-node src/build-scripts/gen-xml.js 而且我收到以下编译错误 /Users/jmendes/gitclient/vcd-ui/content/core/node_modules/ts-node/src/index.ts:319 throw new TSError(formatDiagnostics(diagnosticList, cwd, ts, lineOffset)) ^ TSError: ⨯ Unable to compile […]

CouchDB循环独特`_id`和Console.log通过JavaScript

我有3条logging "_id": "20" , "_id": "30"和"_id": "40" 。 我怎样才能console.log _id ? 我想获得这个输出 20 30 40

在Express中编辑全局数组

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

社交authentication – 在FE或BE方面做得更好?

如果我们想要进行社交authentication(例如Facebook或Google ),那么哪一方最好将其整合。 后端侧还是前端侧? 对于后端我们有NodeJS ,我们可以使用PassportJS来做到这一点,对于前端我们有Angular2.0 ,也有插件可以做到这一点。 我有点困惑这个代码应该驻留在哪一边。 如果有人对此有任何看法,请让我知道。