我很新Javascript
,node.js
并且我正在尝试创建一个REST API
,并且网址将是形式的.
/user/{userId}/docs
我想获得的价值{userId}
,这在的情况下/user/5/docs
会5
.
我可以尝试将其作为请求参数传递(在查询字符串中或在正文中,取决于GET
或POST
方法),但是当它形成时,url看起来更直观.此外,还有更多这样的网址.
我想知道是否有像express这样的节点模块.
我是一个传统的Java
用户和Jersey
框架,用于提供这样的东西Java
.
谢谢,图科
我正在尝试将node.js与mongodb一起使用,并遵循http://howtonode.org/express-mongodb上的教程
打开连接的代码是
ArticleProvider = function(host, port) {
this.db= new Db('node-mongo-blog', new Server(host, port, {auto_reconnect: true}, {}));
this.db.open(function(){});
};
Run Code Online (Sandbox Code Playgroud)
但是我看不到任何连接被关闭.但是当我看到mongo控制台上的日志时,我可以看到那些打开的连接,并且它们会在一段时间后关闭.
连接是否自动关闭?当大量客户试图访问服务器时会出现问题吗?连接应该在哪里关闭?
谢谢
图科
我是javascript和node的新手,并且一直在尝试使用node.js和express创建一个应用程序.
我已经为错误添加了适当的回调,但它们并没有放在任何地方,有时node.js服务器因为一些异常而停止.
建议使用'upstart'或'forever'来保持node.js始终运行,并在node.js停止时启动它.
似乎快递通过以下链接http://expressjs.com/guide.html#error-handling为所有例外提供了所有例外.
app.use(function(err, req, res, next){
console.error(err.stack);
res.send(500, 'Something broke!');
});
Run Code Online (Sandbox Code Playgroud)
它现在对我有用.但是我在某个地方读到这样的错误并不是一个好主意,因为它可能有副作用并且可能使变量处于不一致状态?同样捕获这样的异常并不适用于所有情况,并且在某些情况下服务器仍然可以停止某些异常.这是真的吗?
我的问题可能是这个.
1)如上所述的异常处理是否可以使某些变量处于不一致状态?2)是否会有一些例外仍会停止服务器?
感谢和问候
图科
我正在使用mongo
和node.js
在应用程序中。mongo数据库由两个服务器组成。
在http://howtonode.org/express-mongodb中给出的示例中,我可以使用以下方法连接到一台服务器:
ArticleProvider = function(host, port) {
var database = 'node-mongo-blog';
this.db= new Db(database, new Server(host, port, {auto_reconnect: true}, {}));
this.db.open(function(){});
};
Run Code Online (Sandbox Code Playgroud)
但是我如何连接到多台服务器,在我的情况下有两台服务器。
我们正在寻找一个可以支持索引的内存数据库中的开源.
用例是我们有很多项目会在很大程度上增长.每个项目都有一些我们需要查询的字段.目前,我们将数据存储在应用程序的内存中.但是随着数据的增加,我们必须考虑分发/分片数据库.
我们已经看了几个选项
可以使用 Redis集群,但它没有索引或SQL查询等概念.
Apache Ignite既可以在内存中,也可以分发,也可以提供SQL查询.但是,问题是ignite会将所有查询激活到所有主节点,因此最终结果将比这些查询中最慢的结果慢.这似乎是一个问题,因为许多节点中的非执行/慢节点可能会真正减慢应用程序的速度.进一步点燃,从主服务器完成读取并且不使用从服务器,因此难以扩展查询.增加节点将产生负面影响,因为查询的数量将增加,甚至会更慢.
我们对其他解决方案持开放态度,但想知道多查询是否会成为一个问题(如hazelcast).
对于我们的用例,理想的解决方案是内存数据库,其索引可以通过增加从站的数量来读取.使其分布/分片将导致多个查询,我们不情愿,因为一个错误的节点可能会降低整个系统的速度.
我们正在尝试找到一个具有索引支持的内存数据库,我们可以将它用于我们的应用程序.我们正在研究Aerospike,Apache Ignite,Geode,Voltdb.没有太多区别,每个人都声称速度快,并且有很好的社区支持.
其中,Aerospike和VoltDB是基于C/C++的,Apache Ignite和Geode是基于Java的.
考虑到数据库在性能方面几乎没有什么选择,而且很难测试哪个数据库对我们的生产有更好的作用,试图找出内存数据库的性能是否也取决于它是否是基于java或基于c/c ++的.考虑垃圾收集问题是非常频繁的,并且很难根据您的用例(可能会在一段时间后改变)正确调整它,基于java的dbs是否会处于劣势.
谢谢