小编Tuc*_*uco的帖子

如何在使用node.js时从URL获取Id

我很新Javascript,node.js并且我正在尝试创建一个REST API,并且网址将是形式的.

  1. /user/{userId}/docs

我想获得的价值{userId},这在的情况下/user/5/docs5.

我可以尝试将其作为请求参数传递(在查询字符串中或在正文中,取决于GETPOST方法),但是当它形成时,url看起来更直观.此外,还有更多这样的网址.

我想知道是否有像express这样的节点模块.

我是一个传统的Java用户和Jersey框架,用于提供这样的东西Java.

谢谢,图科

javascript node.js express

16
推荐指数
2
解决办法
4万
查看次数

node.js mongodb关闭连接

我正在尝试将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控制台上的日志时,我可以看到那些打开的连接,并且它们会在一段时间后关闭.

连接是否自动关闭?当大量客户试图访问服务器时会出现问题吗?连接应该在哪里关闭?

谢谢

图科

mongodb node.js

8
推荐指数
1
解决办法
7110
查看次数

node.js和express中的异常处理

我是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)是否会有一些例外仍会停止服务器?

感谢和问候

图科

javascript exception-handling node.js express

5
推荐指数
1
解决办法
3489
查看次数

node.js mongodb如何连接到mongo服务器的副本集

我正在使用mongonode.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)

但是我如何连接到多台服务器,在我的情况下有两台服务器。

mongodb node.js node-mongodb-native

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

在索引的内存数据库中寻找一个开源

我们正在寻找一个可以支持索引的内存数据库中的开源.

用例是我们有很多项目会在很大程度上增长.每个项目都有一些我们需要查询的字段.目前,我们将数据存储在应用程序的内存中.但是随着数据的增加,我们必须考虑分发/分片数据库.

我们已经看了几个选项

  1. 可以使用 Redis集群,但它没有索引或SQL查询等概念.

  2. Apache Ignite既可以在内存中,也可以分发,也可以提供SQL查询.但是,问题是ignite会将所有查询激活到所有主节点,因此最终结果将比这些查询中最慢的结果慢.这似乎是一个问题,因为许多节点中的非执行/慢节点可能会真正减慢应用程序的速度.进一步点燃,从主服务器完成读取并且不使用从服务器,因此难以扩展查询.增加节点将产生负面影响,因为查询的数量将增加,甚至会更慢.

  3. Cassandra - 可以使用cassandra中的内存中选项,但似乎每个节点的表的最大大小可以是1 GB.如果我们的表超过1 GB,我们将不得不求助于分区,这将导致cassandra进行多次查询(每个节点一个),这是一个问题(与点燃相同).不确定是否可以通过增加从属数量来扩展cassandra内存表中的读取.

我们对其他解决方案持开放态度,但想知道多查询是否会成为一个问题(如hazelcast).

对于我们的用例,理想的解决方案是内存数据库,其索引可以通过增加从站的数量来读取.使其分布/分片将导致多个查询,我们不情愿,因为一个错误的节点可能会降低整个系统的速度.

cassandra in-memory-database hazelcast ignite redis-cluster

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

内存数据库的性能取决于它是用c ++还是java编写的

我们正在尝试找到一个具有索引支持的内存数据库,我们可以将它用于我们的应用程序.我们正在研究Aerospike,Apache Ignite,Geode,Voltdb.没有太多区别,每个人都声称速度快,并且有很好的社区支持.

其中,Aerospike和VoltDB是基于C/C++的,Apache Ignite和Geode是基于Java的.

考虑到数据库在性能方面几乎没有什么选择,而且很难测试哪个数据库对我们的生产有更好的作用,试图找出内存数据库的性能是否也取决于它是否是基于java或基于c/c ++的.考虑垃圾收集问题是非常频繁的,并且很难根据您的用例(可能会在一段时间后改变)正确调整它,基于java的dbs是否会处于劣势.

谢谢

in-memory-database voltdb aerospike geode ignite

0
推荐指数
1
解决办法
1015
查看次数