小编Phi*_*ipp的帖子

从Rhino切换到Nashorn

我有一个Java 7项目,它使用Javascript来编写各种功能的脚本.到目前为止,我使用Rhino作为脚本引擎.我现在想转向Java 8,这也意味着我将取代Nashorn的Rhino.

Nashorn与Rhino的兼容性如何?我是否可以将其用作替代品,或者我是否可以预期我的某些脚本将不再工作并且需要移植到新引擎?是否有Nashorn不支持的Rhino常用功能?

rhino java-8 nashorn

28
推荐指数
3
解决办法
2万
查看次数

如何在插入违反唯一索引的MongoDB文档时捕获错误?

我正在构建一个MEAN应用程序.

这是我的用户名架构,用户名应该是唯一的.

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

module.exports = mongoose.model('User', new Schema({ 
    username: { type: String, unique: true }
}));
Run Code Online (Sandbox Code Playgroud)

在我的帖子路线上,我像这样保存用户:

app.post('/authenticate', function(req, res) {
        var user = new User({
            username: req.body.username
        });

        user.save(function(err) {
            if (err) throw err;

            res.json({
                success: true
            });

        });
    })
Run Code Online (Sandbox Code Playgroud)

如果我再次使用相同的用户名发布,我会收到此错误:

MongoError:insertDocument ::由:: 11000引起的E11000重复键错误索引:

有人可以解释如何发送json而不是错误 { succes: false, message: 'User already exist!' }

注意:在我发布用户后,我将自动进行身份验证,不需要密码或其他内容.

javascript mean mongoose mongodb express

17
推荐指数
3
解决办法
2万
查看次数

安全websocket与不安全websocket的成本

我目前正在开发一个使用WebSockets的基于浏览器的多人游戏.我的最高优先级是低延迟和与各种平台和网络设置的兼容性.

但我正在进行密码验证.我也有聊天功能,我认为我的玩家的隐私很重要.所以我认为我可以通过TLS切换到websockets来提高安全性和隐私性.我的问题是:

  1. Web套接字连接的TLS加密将如何影响性能?请注意,我经常发送非常小但非常重要的消息.
  2. wss://在ws://工作的任何环境中工作还是需要回退机制?

或者我的用例在应用程序级别实现加密可能更明智吗?

websocket

13
推荐指数
1
解决办法
2517
查看次数

实现twitter和facebook就像hashtags一样

这可能看起来很愚蠢..而且没有研究的问题,但相信我不是.我已经做过一些研究.其中一个将是以下链接:http: //www.quora.com/Twitter-1/How-does-Twitter-implement-hashtags

此外,我不是在寻找一个完整的解决方案..我会努力工作,但我只需要一些指导,只想知道我应该采用哪种方式?

我想实现twitter,现在甚至像我的应用程序的hash标签一样.所以用户可以添加带有主题标签的消息,而其他人可以搜索它们.就像趋势和相关内容一样.

我们在存储技术堆栈中使用Mysql,mongo和elasticsearch.任何想法我怎么能开始实现这个?我需要另一个存储空间吗?一种方法是我可以将我的hastags存储在db中,然后在Elasticsearch中对它们进行文本搜索.

在这个领域有更多经验的人可以在这里提出什么建议?

java mysql database-design mongodb elasticsearch

12
推荐指数
1
解决办法
4973
查看次数

如何使用Casbah清除/删除/清空MongoDb集合

我开始在Scala通过Casbah使用MongoDb,但无法在Casbah文档/ google上找到删除集合内容的方法.该MongoDd医生说MongoDB的shell命令这样做是

db.things.remove({}); 
Run Code Online (Sandbox Code Playgroud)

但是我们如何通过Casbah实现同样的目标呢?

提前致谢,

奥利维尔

scala mongodb casbah

10
推荐指数
1
解决办法
8083
查看次数

设置Java SSL ServerSocket使用的证书

我想在Java服务器应用程序中打开一个安全的侦听套接字.我知道建议的方法就是这样做:

SSLServerSocketFactory ssf = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
ServerSocket ss = ssf.createServerSocket(443);
Run Code Online (Sandbox Code Playgroud)

但这需要在启动java时将服务器的证书传递给JVM.因为这会使部署中的某些事情变得更加复杂,我宁愿在运行时加载证书.

所以我有一个密钥文件和一个密码,我想要一个服务器套接字.我如何到达那里?好吧,我阅读了文档,我能找到的唯一方法是:

// these are my parameters for SSL encryption
char[] keyPassword =  "P@ssw0rd!".toCharArray();
FileInputStream keyFile = new FileInputStream("ssl.key"); 

// init keystore
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(keyFile, keyPassword);
// init KeyManagerFactory
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, keyPassword);
// init KeyManager
KeyManager keyManagers[] = keyManagerFactory.getKeyManagers();
// init the SSL context
SSLContext sslContext = SSLContext.getDefault();
sslContext.init(keyManagers, null, new SecureRandom());
// get the socket factory
SSLServerSocketFactory socketFactory = sslContext.getServerSocketFactory();

// and finally, get …
Run Code Online (Sandbox Code Playgroud)

java ssl

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

如何分析哪种方法在java,eclipse,junit中消耗更多时间?

对于一些职业java程序员来说,这可能是一个愚蠢的问题,但我现在很生气,所以我仍然在问.请指导我正确的方向某人.

如何分析哪个方法/ partOfMethod在我的java程序中消耗更多时间?

(我正在使用Eclipse和Junit)

java profiler

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

Morphia mongoDB通配符查询

直截了当的问题,是否有人知道如何使用链接到mongoDB数据库的morphia进行通配符查询?

这就是mongo语句的样子:

Mongo:db.users.find({name:/Joe/})
SQL: SELECT * FROM users WHERE name LIKE "%Joe%"

我的morphia语句如下:

吗啡: ds.find(File.class, "filename","/test/").order("filename").asList();

我的数据库中有文件名,例如test1,test等

如果有人可以告诉我,如果甚至可以使用吗啡,那将是非常感激的.

谢谢

regex wildcard mongodb morphia mongodb-java

7
推荐指数
1
解决办法
4788
查看次数

MongoDB如何实现它的空间索引?

当前实现在标准MongoDB B树顶部编码地理哈希码.$ near查询的结果是准确的.这种编码的一个限制虽然快,但是前缀查找不能给出精确的结果,特别是在位翻转区域周围.MongoDB通过在初始前缀扫描之后执行网格邻居搜索来解决此问题,以获取任何落后者点.这通常可确保性能保持很高,同时提供正确的结果.

这是否意味着mongodb将地球分成几个网格?

mongodb

7
推荐指数
1
解决办法
3551
查看次数

MongoDB中的两阶段提交

仔细阅读在线文档后,我仍然有很多关于MongoDB中两阶段提交的问题.

在" 从故障情景中恢复 "一节中,为什么只有两类故障?在我的思想中,失败可能发生在任何这些步骤中,所以这里应该有两个以上的类.例如,在更新帐户A后,(在" 应用两个帐户的交易"部分中)数据库服务器失败.这意味着账户A在账户B没有任何事情的情况下损失了一些钱.而且我们会有不一致的交易?

transactions mongodb

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