因此,围绕此主题还有一些其他查询,例如: 如何使用bluebird宣传MongoDB本机Javascript驱动程序?
但它似乎没有解决最新版本的驱动程序,这似乎在尝试promisify时有问题.目前我可以通过以下方式MongoClient开展工作:
Promise.promisifyAll(mongodb.MongoClient); // Using .Prototype here fails to promisify
然而,无论我尝试什么收集似乎没有使用*async调用操作,它可能会调用它们,但它们永远不会被解决或拒绝,所以他们只是陷入困境.
历史上在以前的版本中你只会Promise.promisifyAll(mongodb)和你完成,但我不确定如何在新的驱动程序中正确处理它.
以下是使用mongo direct promisification创建的集合的示例输出,connectAsync然后从返回的db中获取集合.一旦我尝试对集合做任何事情,它就会挂起并承诺不会从它返回:
{ s:
{ pkFactory:
{ [Function: ObjectID]
index: 14727641,
createPk: [Function: createPk],
createFromTime: [Function: createFromTime],
createFromHexString: [Function: createFromHexString],
isValid: [Function: isValid],
ObjectID: [Circular],
ObjectId: [Circular],
createPkAsync: [Object],
createFromTimeAsync: [Object],
createFromHexStringAsync: [Object],
isValidAsync: [Object],
bindAsync: [Object],
toStringAsync: [Object],
callAsync: [Object],
applyAsync: [Object],
lazyAsync: [Object],
throttleAsync: [Object],
debounceAsync: [Object],
delayAsync: [Object],
everyAsync: [Object],
cancelAsync: [Object],
afterAsync: [Object],
onceAsync: …
我将cookie设置为我的mvc应用程序的一部分:
var cookie = new HttpCookie(CookieName, encryptedData)
{
Path = FormsAuthentication.FormsCookiePath,
Domain = CookieDomain,
Expires = authenticationTicket.Expiration,
HttpOnly = true,
Secure = IsSecure // true
};
response.Cookies.Add(cookie);
Run Code Online (Sandbox Code Playgroud)
现在,如果我调试,我看到它一切正常,没有问题,并添加,这也很好.但是由于某种原因,当它实际到达浏览器时,没有设置HttpOnly标志或安全标志.所以我有点困惑......
我已经尝试在System.Web下的cookie web.config条目中设置HttpOnly和Secure标志:
<httpCookies httpOnlyCookies="true" requireSSL="true" />
Run Code Online (Sandbox Code Playgroud)
现在,这是浏览器收到响应时的响应方式:
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Max-Age: 10000
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type, x-requested-with, *
Access-Control-Allow-Origin: http://localhost:34567
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
Set-Cookie: myCookie=53BA8AF84835A81E014B9174329D8543FBB6029B71C463C6FC1305D9F966F28EAA058FE103325C0F10A3012480FB0EF3F6C0BAC4703A6A6B725F383ADA35A5C125A0438FC42CADCB0DAB77953C967E6660E51C4113C6545220A0C2F86230F446D159D523BBE9CA4D9419A67BC44D23B9C4D0974DF2ED66C47EA7308D8E42E1C2280EA6059A23303E3BCBDF28F6BD4A3DFA92FFAB33DDAC8EC05D99310D26FBD6310252156CD28B89386B0D483D6D2E295EF33487E64468655371CC446E0B5DDBF12B3AA8218AF1FA929A98638A1AC729BA60815B86EAD9624ED1787172B585BE4E457C3568AB6EAAF4865E8468D04336FA7340AAC1BA75162FB322D436DC9BF50466F2F0FB3464ECF41C6C1F7001639DFE2AB2AD9CBFB65A292FE5FA42783DF331AA4641432647BA9672FE6D4C15F830E4DF8B38605852BCB15E5B01B862D966E2FD1D620730312982DB8AB4CE5EE0D0E40E6C3F5234DE5EBFA594036D912F07C3798ED429A2552AD6C4B9EC10B90749850CBDEC97F0BF7E2E43CB3991608C5D533B6EA9F8D0A7AD949B42CD3BAA13DEE99C330121B3D868B412A3435FA01C7F223641CFE441A2E07F5DFB8B23F053CBA13F5E1262A07FBFD4EC4BADF9BD5898; expires=Wed, 27-Feb-2013 19:15:24 GMT; path=/
Date: Wed, 27 Feb 2013 18:45:24 GMT
Content-Length: …Run Code Online (Sandbox Code Playgroud) 我问了一个关于序列化和验证的先前问题.有人提到使用JSON gem,它允许我告诉我的对象如何使用该to_json方法进行序列化,但Ruby似乎很容易做很多复杂的事情,但另一方面,一些非常简单的东西似乎相当复杂,序列化是一个那些东西
我想知道是否有办法让一个干净的对象:
class CleanClass
attr_accessor :variable1
attr_accessor :variable2
attr_accessor :variable3
end
cleanObject = CleanClass.new
Run Code Online (Sandbox Code Playgroud)
理想情况下,我不想弄脏模型,我只想将它传递给某些东西并告诉它输出类型应该是什么并让它发挥其魔力.
一个例子是:
jsonOutput = MagicSerializer::Json.Serialize(cleanObject)
xmlOutput = MagicSerializer::Xml.Serialize(cleanObject)
yamlOutput = MagicSerializer::Yaml.Serialize(cleanObject)
revertedJsonObject = MagicSerializer::Json.Unserialize(jsonOutput)
revertedXmlObject = MagicSerializer::Xml.Unserialize(xmlOutput)
revertedYamlObject = MagicSerializer::Yaml.Unserialize(yamlOutput)
Run Code Online (Sandbox Code Playgroud)
我想传递一个对象,并获得输出的字符串,然后能够将其转换回来.
我知道ActiveModel具有序列化功能,但是我需要弄脏我的类来执行此操作,并且如果可能的话我不想更改模型.ActiveSupport似乎满足JSON标准,因为我可以调用它,它将需要一个对象并吐出JSON,但我想支持其他类型.
任何进一步的信息都会很棒!
在调用我的路由时,我遇到了丢失实例和nilClass错误的问题.在源代码中钻研之后,似乎generate_method调用基本上使用初始方法的块创建了一个新方法.
get "/" do
@some_local_instance.do_something()
end
Run Code Online (Sandbox Code Playgroud)
所以在上面的方法中,很可能在该类中有一个名为some_local_instance的局部变量,但是当实际评估死记硬背时,它没有关于方法定义位置的上下文,因此它将失败.
我问的原因是因为作为我脚本的一部分,我有外部类,当加载Sinatra时会加载哪些注册路由,当调用这些路由时,我需要访问这些类的一些局部变量.一个例子是:
class SomeRouteClass
def initialize(sinatra, calculator)
@calculator = calculator
@sinatra = sinatra
end
def setup_routes
@sinatra.get "/add" do
return @calculator.add(1,1)
end
end
end
class Calculator
def add(a,b)
return a+b;
end
end
sinatra = Sinatra.new
calculator = Calculator.new
routing_class = SomeRouteClass.new(sinatra, calculator)
routing_class.setup_routes
sinatra.run!
Run Code Online (Sandbox Code Playgroud)
原谅任何拼写/语法错误这只是一个简单的例子,但正如你可以看到一个类注册路由以及当该路由被命中时返回一个由实例化它的计算器实例生成的值.
我遇到的问题是,在这个例子中,当我尝试运行/ add路由时,它告诉我@calculator是一个nilClass,我相信它可以归结为Sinatra只是在没有上下文的情况下获取代码块的方式.对于任何简单的模板渲染来说这似乎都很好,但是如果你需要做更多花哨的事情,或者想通过不使用静态和单例来保持你的代码模块化,你似乎没有任何办法解决这个问题......
我的假设在这里是否正确?如果是这样的话,有任何方法可以保持上下文,因为如果我必须将所有东西都写成静态和单例以便从路径进行交互,那么它就会迫使我编写糟糕且难以维护的代码.
==编辑==
重新构建了问题和内容,以更准确地反映实际问题,现在我对库有了更深刻的理解.
我正在看SignalR正在进行的项目,它似乎完全是我想要的.然而,我仍然有点困惑的一点是团体和加入.
我将首先尝试描述实现的上下文.因此,现有系统中的用户将希望召开关于给定主题的会议,然后创建具有给定名称/标识符的房间,然后他们将邀请其他人进入该房间,然后它将基本上像私人聊天室.
所以我假设的步骤是作为主机,创建一个房间并加入它,然后发出邀请,这将要求用户点击哪个会以某种方式告诉服务器加入哪个房间.
现在我从文档中看到有一个Join和Disconnect方法可以挂钩将某人放入一个组,但是看起来Join除了查询字符串之外没有与之关联的上下文,所以我有点困惑至于什么触发了Join,正如我所期望的那样,它将是客户端上的一个手动触发的方法,通过一些对象提供关于放入它们的空间的上下文,因为你可以拥有数百个私人房间.
那么如何为Join方法提供一些上下文和断开连接,让他们知道您要求加入的空间,就好像它不是手动触发的,如何设置查询字符串,如果是手动触发,为什么可以你不发送自定义对象.即
public Task Join()
{
var groupName = Context.QueryString["some-room-identifier"];
return Groups.Add(Context.ConnectionId, groupName);
}
Run Code Online (Sandbox Code Playgroud)
VS
public Task Join(string groupName)
{
return Groups.Add(Context.ConnectionId, groupName);
}
Run Code Online (Sandbox Code Playgroud)
所以我错过了一些东西,或者是否有某种方法可以为加入的用户提供上下文,以便将它们放在正确的位置?
我试图找到有关这方面的信息,但它的所有少量信息似乎与Youtrack中可用的旧版本功能相矛盾或讨论.
根据我的理解,您需要Teamcity设置并链接到YouTrack,以便它知道解析提交消息.但是,我想知道它与YouTrack集成的级别,作为当前信息:
http://confluence.jetbrains.com/display/YTD3/Integration+with+TeamCity
似乎没有相关的4.X版本,但它暗示您可以使用主题标签提交,它将根据您的提交消息执行一些操作,如下所示:
#PR-1 Fixed
Have fixed the underlying issue for this bug, it was due to X,Y,Z
Run Code Online (Sandbox Code Playgroud)
在我的眼中,这将设置#PR-1为固定状态,但上面链接中的文档似乎暗示评论不会延续,这似乎有点垃圾.那么YouTrack是否有一种方法可以获得有关该提交内容的相关信息?通过链接将您带到TeamCity以查看提交消息或替代方法.
我们最初使用的是TFS,但由于其可怕的只读标志会停止构建脚本中的文件模板,构建和测试软件的工作流编辑器以及最终使用Visual的每个人的工作项跟踪器,因此开发很痛苦.工作室,如果你不这样做,你会得到一个垃圾网前端.
无论如何......我的印象是Youtrack,TeamCity,Git可以全部端到端地一起使用,你可以完全跟踪将GIT中的提交与TeamCity构建的发布和完成的故事联系起来YouTrack中的州.
因此,假设您将GIT与Teamcity链接以进行构建,并且Youtrack与Teamcity相关联,您是否可以获得此级别的可跟踪性?
就像标题所说,有没有办法优先对泳道内的所有任务进行排序?
我认为你可以通过顶部的搜索框这样做:
order by: priority
Run Code Online (Sandbox Code Playgroud)
但它似乎没有做任何事情(我使用自动完成位,所以它似乎正确)?
目前我们在底部和顶级化妆品中存在严重缺陷,我们不希望必须手动对它们进行分类以供开发人员选择.
有没有办法找出IQueryable对象是否在其表达式树中应用了OrderBy?
我的方案是网格控件启用了分页,并按列排序.但是默认情况下没有应用排序,所以在这种情况下,Linq to SQL对行计数做了非常大的选择,所以在所有场景中我都需要提供一个order by,但是我应该只应用主键的默认顺序如果没有指定其他订单.
这可能吗?
我正在寻找在节点内使用typescript,我目前习惯通过///<reference.../>语法纯粹使用内部模块来使用typescript .但是对于较大的项目,这可能会变得难以处理,因为您可以使用引用其他模块的模块,这些模块都具有相互链接的引用.
所以对于这个节点项目,我正在考虑尝试将所有逻辑组件分组为内部模块/类,就像之前一样,因此它们将在内部相互引用,但是通过一个外部模块公开它们,这将暴露底层类等.
这种方式的语法与现有需要机制的节点非常相似,例如:
import database = require("my-external-db-module.ts");
var connection = new database.Connection(someUrl);
Run Code Online (Sandbox Code Playgroud)
而不是
///<reference path="my-internal-db-modules.ts" />
var connection = new Database.Connection(someUrl);
Run Code Online (Sandbox Code Playgroud)
我想像语法会是这样的:
///<reference path="all-my-internal-module-files-etc.ts" />
///<reference path="..." />
export module SomeExposingModule
{
// Not quite sure what to put in here to expose the internal modules
}
Run Code Online (Sandbox Code Playgroud)
那么有什么样的最佳实践围绕这类事情或任何其他类似的东西,或者每个人都只是坚持使用内部模块来处理复杂的东西?
希望这是一个简单的程序,但是我有一些自定义的中间件,我想将404或401等返回给用户,并阻止其他处理程序等的传播。
我期待我可以做类似的事情:
function SomeMiddleware(req, res, next) {
if(user.notRealOrSomething)
{ throw new HttpException(401, "Tough luck buddy"); }
return next();
}
Run Code Online (Sandbox Code Playgroud)
但是找不到最佳方法的任何特定信息。
node.js ×3
agile ×2
javascript ×2
ruby ×2
youtrack ×2
.net ×1
amd ×1
asp.net ×1
asp.net-mvc ×1
bluebird ×1
c# ×1
cookies ×1
cors ×1
express ×1
git ×1
httponly ×1
https ×1
json ×1
linq ×1
middleware ×1
mongodb ×1
promise ×1
signalr ×1
sinatra ×1
teamcity ×1
typescript ×1
webrick ×1
xml ×1
yaml ×1