小编Cad*_*ery的帖子

Mongoose 从多个可能的集合中填充 ObjectID

我有一个看起来像这样的猫鼬模型

var LogSchema = new Schema({
    item: {
        type: ObjectId,
        ref: 'article',
        index:true,
    },
});
Run Code Online (Sandbox Code Playgroud)

但是 'item' 可以从多个集合中引用。有可能做这样的事情吗?

var LogSchema = new Schema({
    item: {
        type: ObjectId,
        ref: ['article','image'],
        index:true,
    },
});
Run Code Online (Sandbox Code Playgroud)

这个想法是“项目”可以是来自“文章”集合或“图像”集合的文档。

这是可能的还是我需要手动填充?

mongoose mongodb node.js

6
推荐指数
2
解决办法
3705
查看次数

去年同一个周末使用时刻js

我试图在上周获得同一天,所以我可以比较一些分析.

使用时刻我可以轻松地做到这一点

var today = new Date(); 
//Sunday 4 September 2016 - Week 36

var lastYear = new moment(today).subtract(12, 'months').toDate();
//Friday 4 September 2015 - Week 37
Run Code Online (Sandbox Code Playgroud)

我想要做的是去年获得相同的'星期日',所以星期日在2015年第36周

知道怎么做吗?

javascript date momentjs

4
推荐指数
1
解决办法
4783
查看次数

跨多个 Amazon EC2 实例水平扩展 socket.io

使用运行我的节点应用程序的 2 个 Amazon EC2 服务器设置所有内容并正常工作。目前坐在应用程序负载均衡器后面。

我正在使用这样的代码发出套接字消息

const ioredis = require('socket.io-redis');                
io = require('socket.io')(server);

io.adapter(ioredis({
    host: 'localhost',
    port: 6379
}));


io.to('roomName').emit('message', data);
Run Code Online (Sandbox Code Playgroud)

但是,当使用 socket.io 发出消息时,该消息仅从原始节点服务器广播。

服务器 1 发出 socket.io 消息 -> 连接到服务器 1 的任何人都会听到该消息,但连接到服务器 2 的任何人都不会。

服务器 2 发出 socket.io 消息 -> 连接到服务器 2 的任何人都会听到该消息,但连接到服务器 1 的任何人都不会。

我需要帮助的是如何从服务器 1 发出 socket.io 消息并将其中继到所有其他服务器,可能是通过在单独的服务器上使用单个 redis 实例?

或者

有另一个服务器作为套接字发射器,服务器 1 和服务器 2 从中发送和接收套接字消息。

不太确定哪个选项是最好和正确的方法,任何帮助将不胜感激。

sockets amazon-ec2 redis node.js

3
推荐指数
1
解决办法
893
查看次数

标签 统计

node.js ×2

amazon-ec2 ×1

date ×1

javascript ×1

momentjs ×1

mongodb ×1

mongoose ×1

redis ×1

sockets ×1