小编Edw*_*Sun的帖子

.save()和使用update()之间的猫鼬差异

要修改mongoose中现有条目中的字段,使用之间有什么区别

model = new Model([...])
model.field = 'new value';
model.save();
Run Code Online (Sandbox Code Playgroud)

还有这个

Model.update({[...]}, {$set: {field: 'new value'});
Run Code Online (Sandbox Code Playgroud)

我问这个问题的原因是因为有人建议我昨天发布的一个问题:NodeJS和Mongo - 当多个用户同时发送请求时出现意外行为.这个人建议使用更新而不是保存,我还不完全确定它为什么会有所作为.

谢谢!

javascript mongoose mongodb node.js

41
推荐指数
4
解决办法
5万
查看次数

Socket.io连接恢复为轮询,从不触发'连接'处理程序

我正在尝试将socket.io添加到express上现有的node.js应用程序中.我在服务器端添加了socket.io库,如下所示(直接跟随http://socket.io/get-started/chat/):

var express = require('express')
    , http = require('http')
    , path = require('path')
    , fs = require('fs');

var app = express();
var http = http.Server(app);
var io = require('socket.io')(http);

// Express settings [...]
// Express routes [...]

// Socket.io Communication
io.on('connection', function(socket) {
  console.log('a user connected');
});


// Start server
app.listen(config.port, function () {
  console.log('Express server listening on port %d in %s mode', config.port, app.get('env'));
});
Run Code Online (Sandbox Code Playgroud)

现在,在前端我只是建立一个连接:

<script src="/socket.io/socket.io.js"></script>
<script>
  var io = io();
</script>
Run Code Online (Sandbox Code Playgroud)

但是,控制台不是在控制台中显示"用户连接",而是记录连续的轮询流.我在Mac上使用最新版本的Chrome,它支持websockets.

GET /socket.io/?EIO=2&transport=polling&t=1402521519446-91 …
Run Code Online (Sandbox Code Playgroud)

sockets node.js socket.io socket.io-1.0

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

从沙箱iframe打开的窗口与allow-popups-to-escape-sandbox无法关闭随后打开的子窗口

我目前有一个在具有以下属性的沙盒iframe中打开的窗口:( allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts注意:allow-popups和allow-popups-to-escape-sandbox都是声明的)

我可以从这个iframe中的链接打开一个新窗口(让我们称之为这个窗口A).Window A能够按预期执行javascript,并且能够打开一个新的子窗口(via window.open) - 让我们调用这个子窗口B.

不幸的是,当Window A试图通过close()从window.open生成的句柄调用来关闭Window B时,我收到以下错误:

不安全的JavaScript尝试从具有URL'[Window A]'的帧启动具有URL'[Window B]'的帧的导航.尝试导航的框架是沙箱,因此不允许导航其祖先.

这是否意味着尽管窗口A是从带有allow-popups-to-escape-sandboxset 的iframe打开的,但它仍然以某种方式被沙盒化?我怎么能关闭Window B?请指教.

谢谢!

google-chrome chromium

9
推荐指数
0
解决办法
950
查看次数

使用Google Auth的PassportJS/NodeJS安全REST API

我有一个使用护照-google-google-oauth的应用程序,允许使用RESTful API端点进行Google身份验证.

我正在寻找需要与这些API端点通信的其他应用程序(例如,Chrome扩展程序).如何使用护照中的Google身份验证来保护REST API?我通常会阅读很多关于保护REST API的事情(例如,如果我有自己的登录信息),但如果我的应用程序依赖于第三方登录,我该怎么办呢?(即Google,Facebook,Twitter等)

谢谢

node.js passport.js

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

通过 UrlFetchApp 发出请求时出现 SSL 错误

我尝试使用 UrlFetchApp 向具有有效 SSL 证书的站点发出简单的 GET 请求,但我不断遇到此错误:

ScriptError: SSL Error https://dev.kaizena.com/api/config
Run Code Online (Sandbox Code Playgroud)

有趣的是,当我向https://kaizena.com/api/config发出请求时,相同的请求按预期工作

这是我正在使用的代码:

var url = "https://dev.kaizena.com/api/config";

var payload = JSON.stringify(data);

var headers = { "Accept":"application/json", 
                "Content-Type":"application/json"//, 
              };

var options = { "method":"GET",
                "contentType" : "application/json",
                "headers": headers,
                "payload" : payload
              }
var response = UrlFetchApp.fetch(url);
Run Code Online (Sandbox Code Playgroud)

同样,如果我将 URL 更改为https://kaizena.com/api/config(也具有有效的 SSL 证书),代码将按预期工作。有人可以具体告诉我什么是“SSL 错误”吗?

谢谢,爱德华

google-apps-script

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