Socket.IO,SSL问题与cloudflare

我有一个socket.io应用程序,基本上从前端接收信号,以杀死和启动一个新的ffmpeg进程(基于.spawn())。 一切都像预期的那样工作,但是我经常从cloudflare中得到一个525错误。 错误消息是:Cloudflare无法build立与原始服务器的SSL连接。 它的工作原理是10次中的9次。我注意到,只要kill + spawn完成,就会出现更多的这些错误。 难道是事件阻塞事件循环,并因为这阻止所有传入的请求和cloudflarelogging这些握手失败错误? 联系cloudflare支持让我回到这个信息(这是他们对我的服务器的要求): Time id host message upstream 2017-08-16T09:14:24.000Z 38f34880faf04433 xxxxxx.com:2096 peer closed connection in SSL handshake while SSL handshaking to upstream https://xxx.xxx.xxx.xxx:2096/socket.io/?EIO=3&transport=polling&t=LtgKens 我现在正在debugging一段时间,但似乎无法自己find解决scheme。 这是我如何初始化我的socketIO服务器。 /** * Start the socket server */ var startSocketIO = function() { var ssl_options = { key: fs.readFileSync(sslConfig.keyFile, 'utf8'), cert: fs.readFileSync(sslConfig.certificateFile, 'utf8') }; self.app = […]

Mongoose从嵌套数组中移除整个对象

我正在使用mongoose4.11.3。 我试图从嵌套数组中删除一个对象。 这是我的模式 var VendorSchema = new Schema({ _id: { type: Schema.Types.ObjectId, ref: "User" }, services: [{ _id:false, service_category: { type: Schema.Types.ObjectId, ref: "ServiceCategory" }, sub_services :[{ _id:false, service : { type: Schema.Types.ObjectId, ref: "Service" }, service_description:{ type: String, default: null } }] }] }); 我需要删除sub_services数组中的对象。 所以这就是我所做的 Vendor.update({'services.service_category': req.body.category_id}, {$pull :{'services.$.sub_services': { "service": req.body.service_id }}},function(err,obj){ […]

如何导出asynchronous函数?

以下是我的代码 – abc.js class abc { async foo1() { // do something return result; } async foo2() { // do something return result; } module.exports = abc } 另外,file.js const abc = requir(./abc); abc.foo1(); // this results in error // TypeError : abc.foo1 is not a function 我应该怎么做?

节点js适合于批量更新

我在节点上写了一个脚本来与2个系统连接,并使用api将一堆更新应用到一个。 使用个别的例子更新工作正常,但是当把它们放在一起我得到一个超时错误。 由于节点的非阻塞性质而导致的猜测,即使用数千次更新来洪泛系统可能是问题。 我是否选错了使用的工具/引擎? 如果是的话,我的path是什么样的阻力最小(是否有其他的JavaScript环境,我可以重新使用我的代码?或者有没有办法设置某种深度的队列,以保持传出请求的数量没有响应较低)

Node.js中的模型文件不会考虑configuration

我有这样的模型文件,如下所示: 'use strict' module.exports = function (sequelize, DataTypes) { let User = sequelize.define('user', { id: { type: DataTypes.INTEGER(11), allowNull: false, primaryKey: true, autoIncrement: true } }, { classMethods: { associate: function(models) { this.belongsToMany(models.role, { through: { model: 'user_role' }, foreignKey: 'user_id' }) } } }, { tableName: 'user', timestamps: false, underscored: true } ) return […]

keystone.Storage适配器谷歌云存储

是否有一个谷歌云存储适配器keystone.Storage库? 我想承载一切我可以与一个服务提供商。 我将使用谷歌云平台来托pipe我的Keystone.js应用程序和MongoDB数据库。 该库有本地文件,S3和Azure适配器,但我不知道如何使用它与谷歌云存储。 请参阅https://github.com/keystonejs/keystone/tree/master/lib/storage 如果可以像keystone-storage-adapter-s3一样使用,我会很棒: configuration: var storage = new keystone.Storage({ adapter: require('keystone-storage-adapter-gcloud'), s3: { key: 'gcloud-key', secret: 'secret', bucket: 'mybucket', path: '/profilepics', headers: {}, }, schema: { bucket: true, etag: true, path: true, url: true, }, }); 然后用它作为File域的存储提供者: File.add({ name: { type: String }, file: { type: Types.File, storage: storage }, });

React defaultValue不工作axios传递dynamic数据

你好即时新在React和即时通讯尝试玩一点与反应,但inheritance人一点我不明白。 首先,获取axios数据谁返回我的数据,下面,然后我尝试把它们放入input字段,值(和只读),defaultValue更好,现在我有问题,我什么都看不到,值存在当我用萤火虫查看时,奇怪的是,当我添加一个不需要的字符input得到我想要的填充,但不是默认情况下。 非常奇怪的是,当我把所有东西放在一个数组中,并且在它上面执行一个映射函数时,我有这个值 json代码 {"firma":"hallo","strasse":"musterweg 7","plz":"01662"} js代码 import React from 'react'; import ReactDOM from 'react-dom'; import axios from 'axios'; class Testx extends React.Component { constructor(props) { super(props); this.state = { data:[] }; } componentDidMount(){ var self = this; axios.get('http://localhost/index.php') .then(function (response) { self.setState({ data: response.data}); }) .catch(function (error) { console.log(error); }); } render() { return […]

当没有指定sorting顺序时,MongoDB如何sortinglogging?

当我们运行一个没有指定sorting顺序的Mongo find()查询时,数据库在内部使用什么来sorting结果? 根据mongo网站上的文档 : 在不带参数的情况下执行find()时,数据库以自然顺序返回对象。 对于标准表而言,自然顺序并不是特别有用,因为虽然顺序经常接近插入顺序,但不能保证顺序。 但是,对于Capped Collections,自然顺序保证是插入顺序。 这可能是非常有用的。 但对于标准集合(非上限集合),使用哪个字段对结果进行sorting? 是_id字段还是别的吗? 编辑: 基本上,我想我想得到的是,如果我执行以下search查询: db.collection.find({"x":y}).skip(10000).limit(1000); 在两个不同的时间点: t1和t2 ,我会得到不同的结果集: 当t1和t2之间没有额外的写入? 当t1和t2之间有新的写入? 在t1和t2之间是否添加了新的索引? 我已经在临时数据库上运行了一些testing,并且我得到的结果对于所有这三种情况都是一样的( 是的 ) – 但是我想确定,而且我确定我的testing用例不是很彻底。

运行npm run build vue后,某些图片没有被加载

我完成了我的Vue应用程序,并运行npm run build部署应用程序。 一切似乎都很好。 但是,我的一些图片将无法运行。 我的四个图像渲染得很好。 但是,这四个图像不在我的img文件夹中。 在控制台上,我得到这个错误: GET file:///C:/static/img/Two.550dff0.jpeg net::ERR_FILE_NOT_FOUND 图像名称是“Two.550dff0.jpeg”,它位于img文件夹中,但应用程序无法访问它。 这是为什么? 而且,对于渲染的四个图像,这些图像不在img文件夹中。 我也无法在dist文件夹中find这四个图像。 这是index.HTML代码: <script type=text/javascript src=static/js/manifest.1f30a815db1d214533a9.js></script> <script type=text/javascript src=static/js/vendor.0757592c5dae8c3165a1.js></script> <script type=text/javascript src=static/js/app.53c259c8c3df1ec9179f.js></script>

在文件资源pipe理器中无法打开子目录? – Node.js

我不明白为什么我不能在Node.js中打开“我的文档”的子目录。 我目前的代码: function fileExplorer() { var spawn = require('child_process').spawn, child = spawn('C:\\Windows\\explorer.exe', ["%userprofile%\\documents"]); } 完全正常工作来启动用户的“我的文档”文件夹。 但是,如果我想在“我的文档”里面打开一个目录,比如说“我的文档/附加资料”,以下是不起作用的: function fileExplorer() { var spawn = require('child_process').spawn, child = spawn('C:\\Windows\\explorer.exe', ["%userprofile%\\documents\\extra stuff"]); } 我错过了什么? 请原谅我,如果我问的是什么问题,我有一个devise导向的大脑,更熟悉HTML,CSS和一些Javascript。