这个问题重复了一些较旧的问题,但事情可能已经改变了.
是否有一些官方支持从Node.js连接到SQL Server(例如MS的官方库)?或者至少是一些维护良好的第三方库适合生产级应用程序?
我们通常使用ASP.NET MVC/SQL Server组合,但目前我有一个任务,其中express/Node.js似乎更合适(我想玩新的东西),所以问题是我们是否可以依赖于Node.js和SQL Server的交互.
UPD:似乎微软最终发布了官方驱动程序:https://github.com/WindowsAzure/node-sqlserver
它似乎是一种比较运算符,但它究竟是什么在例如下面的代码中(取自https://github.com/lvv/git-prompt/blob/master/git-prompt.sh#L154)?
if [[ $LC_CTYPE =~ "UTF" && $TERM != "linux" ]]; then
elipses_marker="…"
else
elipses_marker="..."
fi
Run Code Online (Sandbox Code Playgroud)
我目前正试图git-prompt在MinGW下工作,而MinGW提供的shell似乎不支持这个运算符:
conditional binary operator expected
syntax error near `=~'
` if [[ $LC_CTYPE =~ "UTF" && $TERM != "linux" ]]; then'
Run Code Online (Sandbox Code Playgroud)
在这个特定的情况下,我可以用elipses_marker="…"(因为我知道我的终端支持unicode)替换整个块,但究竟是什么=~呢?
假设我列举了所有货币:
public enum CurrencyType
{
/// <summary>
/// United Arab Emirates dirham
/// </summary>
[EnumMember]
AED = 784,
/// <summary>
/// Afghan afghani
/// </summary>
[EnumMember]
AFN = 971,
/// <summary>
/// Albanian lek
/// </summary>
[EnumMember]
ALL = 008,
...
}
Run Code Online (Sandbox Code Playgroud)
VS 2015代码分析一直抱怨每个成员有100个违反CA1709的行为.
这本身就是一个有用的规则,我不想禁用它; 然而,在这个特定的情况下它并没有多大帮助,因为它CurrencyType是公共的,并且在很多其他项目中使用.
我可以压制这个消息; 然而,VS只允许我为每个成员压制它 - 这意味着我将拥有100 [SuppressMessage(...)]行,这将使代码混乱.
有没有办法抑制所有CurrencyType成员的所有CA1709 ,而不是为这个项目中的所有其他代码抑制它,而不必写100 [SuppressMessage(...)]?
有一个Scope参数SuppressMessageAttribute,但文档不清楚.我试过放两个
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Scope = "type", Justification = "Currency codes are defined in ISO …Run Code Online (Sandbox Code Playgroud) 似乎这个问题之前没有在stackoverflow上讨论过,除了使用嵌套的XPath Predicates ...精炼在哪里提供了不涉及嵌套谓词的解决方案.
所以我试着写出我想要得到的过度简化的样本:
输入:
<root>
<shortOfSupply>
<food animal="doggie"/>
<food animal="horse"/>
</shortOfSupply>
<animalsDictionary>
<cage name="A" animal="kittie"/>
<cage name="B" animal="dog"/>
<cage name="C" animal="cow"/>
<cage name="D" animal="zebra"/>
</animals>
</root>
Run Code Online (Sandbox Code Playgroud)
输出:
<root>
<hungryAnimals>
<cage name="B"/>
<cage name="D"/>
</hungryAnimals>
</root>
Run Code Online (Sandbox Code Playgroud)
或者,如果没有交叉点,
<root>
<everythingIsFine/>
</root>
Run Code Online (Sandbox Code Playgroud)
我想使用嵌套谓词来获取它:
<xsl:template match="cage">
<cage>
<xsl:attribute name="name">
<xsl:value-of select="@name"/>
</xsl:attribute>
</cage>
</xsl:template>
<xsl:template match="/root/animalsDictionary">
<xsl:choose>
<!-- in <food> in <cage> -->
<xsl:when test="cage[/root/shortOfSupply/food[ext:isEqualAnimals(./@animal, ?????/@animal)]]">
<hungryAnimals>
<xsl:apply-templates select="cage[/root/shortOfSupply/food[ext:isEqualAnimals(@animal, ?????/@animal)]]"/>
</hungryAnimals>
</xsl:when>
<xsl:otherwise>
<everythingIsFine/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
那么我该?????怎么写呢呢?
我知道我可以使用一个更多的模板和变量/参数的广泛使用来重写整个样式表,但它甚至使这个样式表变得更加复杂,更不用说真实问题的真实样式表了. …
我创建了一个新的功能应用程序,为其启用了应用程序服务身份验证/授权(" 使用身份验证/授权来保护您的应用程序并使用每个用户数据 ")并禁用未经身份验证的请求.
到目前为止,一切似乎都正常.如果我尝试请求我的HttpTriggered功能,它需要我先登录; 一旦我登录,所有请求都将按原样处理.所以"保护你的应用程序"部分没有问题.
但是,我完全坚持"使用每用户数据"部分.我的Azure函数被调用为
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
并且没有任何与身份验证相关的内容HttpRequestMessage.(AuthorizationLevel.Anonymous似乎控制着完全不同的东西 - 即,如果该函数可以被任何人调用,或者只能由具有固定API密钥的人调用).
如何获取调用该函数的已认证用户的身份?
c# azure azure-active-directory azure-functions azure-authentication
我想写下面的内容:
internal class InternalData
{
}
public class PublicData
{
}
abstract internal class Base {
internal Base() { }
private static InternalData CreateInternalDataFromPublicData(PublicData publicData)
{
throw new NotImplementedException();
}
abstract protected void DoProcess(InternalData internalData);
public void Process(PublicData publicData)
{
InternalData internalData = CreateInternalDataFromPublicData(publicData);
DoProcess(internalData);
}
}
public sealed class Derived : Base
{
protected override void DoProcess(InternalData internalData)
{
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)
也就是说,Base包含一些内部逻辑,并不打算由我的程序集之外的类继承; 而Derived从外部访问.
InternalData还包含一些内部逻辑,因为它(并且应该)永远不会从外部使用,我也希望将其内部化.
当然上面的代码不会编译,因为它Base不应该比它更容易访问Derived.我可以设置Base为 …
目前我必须处理用VB编写的遗留系统.我对VB和ASP不太满意,所以我决定用JScript编写这个系统的新代码.
但是,这两种语言之间的互操作性存在一些问题:即,当我试图调用在<script language="vbscript">tag中声明的某个函数时,它会因" Object expected "错误而失败(如果页面语言是VBScript),反之亦然.
即,以下代码:
inc.asp
<script language="vbscript" runat="server">
Sub VBTestFunction(Message)
Response.Write "VBTestFunction: " & Message
End Sub
</script>
<script language="javascript" runat="server">
function JSTestFunction(Message) {
Response.Write("JSTestFunction: " + Message);
}
</script>
Run Code Online (Sandbox Code Playgroud)
testjs.asp
<%@ Language="JavaScript" %>
<!-- #include file="inc.asp"-->
<script language="javascript" runat="server">
VBTestFunction("from javascript");
JSTestFunction("from javascript");
</script>
<script language="vbscript" runat="server">
Call VBTestFunction("from vbscript")
Call JSTestFunction("from vbscript")
</script>
Run Code Online (Sandbox Code Playgroud)
失败,出现以下错误:
VBTestFunction: from vbscript
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'JSTestFunction'
/test.asp, line 9
Run Code Online (Sandbox Code Playgroud)
(如果我对特定行进行评论,其他三个语句将正常工作); 将页面语言设置为VBScript
<%@ Language="VBScript" %> …Run Code Online (Sandbox Code Playgroud) 有一个相关的问题GET pull请求使用github api从pull请求号合并提交sha,但是没有答案.
根据GitHub API,一旦Pull Request被合并,它就会触发pull_request事件action: closed.事件也可以从Events API获得.但是,只有merged(即true如果合并了pull请求)并且不推荐使用merge_commit_sha(临时合并提交的SHA,而不是合并拉取请求的实际提交)字段.
还有用于处理拉取请求的API ; 但是,根据文档,它也只会返回是否合并了pull请求,以及什么是临时提交SHA(在不推荐使用的字段中).
Pull请求显然与合并提交有关,因为提交SHA显示在pull请求页面上:

有没有办法以编程方式获取提交的SHA,拉动请求被合并到基础,知道拉取请求ID?
对于某些用户请求,我需要进行一些繁重的计算(大约需要100毫秒的时间);而且,当然,我不想在节点的主事件循环中执行这些操作,以免阻止其他请求得到处理。
解决此问题的最明显但绝对不是最干净的方法是将计算卸载到另一个程序,然后异步等待结果。
有什么方法可以在不离开节点进程(并实现进程间通信)的情况下进行操作?例如这样的事情:
var compute = function (input) {
var i,
result = input;
for (i = 0; i < 1000000; i++) {
result = md5(result);
}
}
var controller = function (req, res) {
offload(compute, req.params.input, function(result) {
res.send(result);
});
}
Run Code Online (Sandbox Code Playgroud)