我正在试验小巧玲珑.我有一个具有枚举的类,值存储为数据库中的字符串.
这适用于使用GenericEnumMapper的FluentNHibernate
是否可以用Dapper做同样的事情?
是否可以检测原始协议缓冲区消息的类型(在byte []中)
我有一种情况,端点可以接收不同的消息,我需要能够检测类型,然后才能反序列化它.
我正在使用protobuf-net
我在Express中有一个错误处理middlware,试图捕获所有传入的错误:
app.use(function(err, req, res, next){
console.error(err.stack);
res.status(500);
res.render('500.jade');
});
Run Code Online (Sandbox Code Playgroud)
但由于某些原因,每当我关闭mongod
进程时,我的应用程序崩溃时会出现以下堆栈跟踪:
Error: failed to connect to [localhost:27017]
at null.<anonymous> (/<hidden>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:540:74)
at EventEmitter.emit (events.js:106:17)
at null.<anonymous> (/<hidden>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15)
at EventEmitter.emit (events.js:98:17)
at Socket.<anonymous> (/<hidden>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:478:10)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:441:14
at process._tickCallback (node.js:415:13)
Process finished with exit code 8
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下配置,但它没有帮助我:
var options = {
server:{
auto_reconnect: true,
poolSize: 10,
socketOptions:{
keepAlive: 1
}
},
db: {
numberOfRetries: 10,
retryMiliSeconds: 1000
}
}
mongoose.connect(config.db, options);
Run Code Online (Sandbox Code Playgroud)
有人可能会想知道"如果没有数据库连接它的基本上不再运行,你为什么要让你的应用程序运行?".我不希望它崩溃并重新启动.在一定次数的尝试之后,Supervisor和Forever模块似乎停止尝试重新连接,从而使您的应用程序处于崩溃状态.
理想情况下,当MongoDB崩溃时,我想向用户显示500.jade错误页面,同时服务器应该每隔10秒继续尝试重新连接到数据库.重新连接后,恢复所有正常操作.
编辑:以下发布的解决方案都没有为我工作,域名除外.