小编pet*_*ter的帖子

是否仍然需要宣传MongoDB驱动程序?

这个问题的答案是否仍然相关:如何使用bluebird宣传MongoDB本机Javascript驱动程序?

我不知道从什么时候开始更新,但是MongoDB的2.0 JS驱动程序在options对象中有一个属性promiseLibrary:http://mongodb.github.io/node-mongodb-native/2.0/api/MongoClient.html

并且大多数方法/函数确实返回了一个承诺,例如Cursor.toArray().

但是,我找不到使用这个新选项的示例,但使用时不会更简单:

MongoClient.connect('mongodb://URL', { promiseLibrary: require('bluebird') });
Run Code Online (Sandbox Code Playgroud)

或者这个定义是错的? - 在哪种情况下,应该如何正确定义?

更新:

代码在io.js上运行,所以我甚至可能不需要指定一个promiseLibrary驱动程序将使用ES6承诺? - 但是,据说蓝鸟的承诺比较慢:

为什么原生ES6比蓝鸟承诺更慢,内存更密集?

Update2: 我添加了bluebird标签 - 如果promisifying真的比使用MongoDB自己的实现更好的话,也许在bluebird上工作的人可以提供更多细节吗?

mongodb node.js promise bluebird

6
推荐指数
1
解决办法
703
查看次数

如何在 EF Core 中实现 Select For Update

据我所知,EF(和 EF Core)中没有选项可以显式锁定我正在查询的资源,但我会经常需要这个功能,并且真的不想回到写作每次我需要它时都选择语句。

因为我只需要它用于 postgres 并且根据规范 FOR UPDATE是查询中的最后一项,所以我想到实现它的最简单的方法是获取如下所述的 select 语句:在 Linq to Entities 中,您能否将 IQueryable 转换为字符串SQL?并附加FOR UPDATE并直接执行它。然而,这要么给我一个带有参数占位符的查询,要么不是一个准备好的查询,这意味着执行计划的缓存不会真正在 postgres 上工作,所以无论哪种方式都行不通。

Linq to SQL 有这个方法,DataContext.GetCommand但在 EF 和特别是 EF Core 中似乎没有任何等效的东西。我还查看了 EntityFramework.Extended 及其批量更新/删除,但由于他们必须将 select 语句转换为不同的语句,因此他们需要处理比我复杂得多的问题,因此我希望有一个更简单的解决方案。

更新:

如果描述不清楚,我想创建一个这样的扩展方法:

public static IList<T> ForUpdate (this IQueryable<T> me)
{
    // this line is obviously what is missing for me :)
    var theUnderlyingCommand = me.GetTheUnderlyingDbCommandOrSimilar();

    theUnderlyingCommand.Text += "FOR UPDATE";
    return me.ToList();
}
Run Code Online (Sandbox Code Playgroud)

这样,其他开发人员可以像所有其他过程一样通过 Linq 使用 EF,而不是运行.ToList()他们会运行.ForUpdate(). …

postgresql entity-framework npgsql entity-framework-core

6
推荐指数
1
解决办法
8348
查看次数

如何分发私人办公室插件?

我们有一个小型的Excel应用程序来补充我们的SaaS产品.独立它是无用的,因此,我有很大的问题进入办公室应用程序商店.实际上它没有任何意义,只适合我们的用户.但是,用户还可以轻松安装此应用程序吗?

它是使用HTML和JS与Office.js库编写的,因此应用程序本身基本上只是一个指向静态URL的xml清单文件.有文档如何侧载加载以进行测试:

我们的大多数用户都有一台在本地安装excel的Windows PC.并创建一个共享文件夹,....超出了他们的能力.我希望我能以某种方式将nginx配置为webdav或类似的将其添加到excel作为受信任的目录URL,但是我没有找到任何文档说明此目录URL可以是什么,除了网络共享.

关于mac和iPad,我更加困惑.我可以为他们提供一个他们需要执行的简单脚本/应用程序,以便将清单复制到正确的位置.

但我想我真正想知道的是,是不是有任何"官方"的方式来分发办公室添加,这只对少数人有用 - 谁不在你的组织中 - 请记住,没有共同的分享点服务器.如果您建议的用户没有最友好的方式?

更新:

为了使它更容易掌握 - 该应用程序被称为WebBSC,并且基本上使执行某些任务变得更容易,这些任务通常以前在Excel中完成.但由于我们所有的客户都拥有excel中的原始数据,我们创建了一个用于导入这些数据的插件(这可能不仅仅是一次,但也可能每月定期) - 这就是加载项没有的原因在商店里真的很有意义,另一方面我们不与我们的客户共享任何Office365或Sharepoint/Exchange帐户,它只是一个简单的SaaS应用程序.

ms-office office-addins office365

6
推荐指数
1
解决办法
1678
查看次数

在高负载下连接 nodejs 中的 EADDRNOTAVAIL - 如何更快地释放或重用 TCP 端口?

我有一个基于 express-framework 的类似 wiki 的小型 Web 应用程序,它使用弹性搜索作为后端。对于每个请求,它基本上只转到弹性搜索数据库,检索对象并返回由把手模板引擎呈现的对象。与弹性搜索的通信通过 HTTP

只要我只有一个 node-js 实例在运行,这个方法就很好用。在我更新我的代码以使用集群后(如nodejs-documentation 中所述,我开始遇到以下错误:connect EADDRNOTAVAIL

当我运行 3 个或更多 python 脚本时,会出现此错误,这些脚本不断从我的服务器检索一些 URL。使用 3 个脚本,我可以检索约 45,000 个页面,其中运行 4 个或更多脚本,在 30,000 到 37,000 个页面之间仅运行 2 或 1 个脚本,半小时后我停止了它们,分别检索了 310,000 页和 160,000 页。

我发现了这个类似的问题并尝试更改,http.globalAgent.maxSockets但没有任何效果。

这是代码的一部分,用于侦听 URL 并从弹性搜索中检索数据。

app.get('/wiki/:contentId', (req, res) ->
    http.get(elasticSearchUrl(req.params.contentId), (innerRes) ->
        if (innerRes.statusCode != 200)
            res.send(innerRes.statusCode)
            innerRes.resume()
        else
            body = ''
            innerRes.on('data', (bodyChunk) ->
                body += bodyChunk
            )
            innerRes.on('end', () ->
                res.render('page', {'title': req.params.contentId, 'content': JSON.parse(body)._source.html}) …
Run Code Online (Sandbox Code Playgroud)

port limit node.js coffeescript express

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

流云与cloud9

当尝试在cloud9中运行meteor时,我遇到以下错误之一:

从cloud9运行较旧的修改版本我收到错误:

No dependency info in bundle. Filesystem monitoring disabled.
=> Errors prevented startup:
Exception while bundling application:
Error: Package not found: standard-app-packages
    at self.api.use (/var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/tools/bundler.js:113:17)
    at Array.forEach (native)
    at Function._.each._.forEach (/var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/dev_bundle/lib/node_modules/underscore/underscore.js:79:11)
    at Object.self.api.use (/var/lib/stickshift/532a1c97500446885f0002a8/app-root/data/meteor/tools/bundler.js:110:9)
Run Code Online (Sandbox Code Playgroud)

当我尝试运行最新版本时,我从cloud9收到错误:

Cloud9  Error: you may be using the wrong PORT & HOST for your server app
        Node: use 'process.env.PORT' as the port and 'process.env.IP' as the host in your scripts. See also https://c9.io/site/blog/2013/05/can-i-use-cloud9-to-do-x/
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我会克隆相应的GitHub库和运行export BIND_IP=$IP,以及export PORT=20000(因为它是描述在几个职位).我也放弃了使用默认MongoDB服务器的希望,而是导出 …

cloud9-ide meteor

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

Visual Studio Team Services说“ Task PowerShell失败”,尽管没有

在VS Team Services中的Powershell脚本结尾处出现以下错误:

任务PowerShell失败。这导致作业失败。查看任务的日志以了解更多详细信息。

但是,脚本没有失败。它完成了我想要做的所有事情。有什么办法可以向VS Team Services解释吗?

该脚本从VS Team Services获取经过编译和测试的代码,并将其推送到bitbucket上的git存储库。这样,我可以从中自动创建一个docker容器并更新我的应用程序。这是脚本:

git clone BITBUCKET_URL/example-repo.git
cd example-repo

echo "Clean app-folder and remove Dockerfile"

remove-item app -recurse -force
remove-item Dockerfile -force

new-item -name app -itemtype directory

echo "Copy new files into repository"

cp ../deploy/Dockerfile .
cp ../ExampleApp/bin/Debug/* ./app

echo "Set email, name and include all files"

git config user.email "EMAIL"
git config user.name "NAME"
git add -A

echo "What has changed:"
git status

echo "Commit and Push..."
git commit -m "VS Online Commit" …
Run Code Online (Sandbox Code Playgroud)

git powershell continuous-integration azure-devops

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

从 ASP.NET Core 3.1 升级到 ASP.NET 5.0 后,User.Claims 为空

从 ASP.NET Core 3.1 升级到版本 5 后,context.User.Claims为空

protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, MyRequirement requirement)
Run Code Online (Sandbox Code Playgroud)

public class MyRequirementHandler : AuthorizationHandler<MyRequirement>
Run Code Online (Sandbox Code Playgroud)

我将Authorization标头与 JWT 的不记名令牌一起使用。在查看时我可以看到标头设置正确HttpContext.Request.Headers,但它似乎没有被解析。

这是在具有该属性的 Grpc 服务上设置的[Authorize]

使用 ASP.NET Core 3.1,它运行得很好。我阅读了官方迁移指南,但他们有关授权的参考仅适用于 Azure Active Directory。

我正在使用 IdentityServer4,它托管在 ASP.NET Core 应用程序中作为中间件 ( app.UseIdentityServer();)

我忘记修改什么以使 ASP.NET Core 正确解析授权标头?

更新:

我更详细地检查了它,发现它失败了,因为它无法验证受众 ( aud) - 是的,在新创建的代币上,受众缺失(旧代币有受众)。我还注意到我添加了一个自定义范围

public override async Task GetProfileDataAsync(ProfileDataRequestContext context)
Run Code Online (Sandbox Code Playgroud)

在我的习惯里面

public class ProfileService : ProfileService<ApplicationUser>
Run Code Online (Sandbox Code Playgroud)

更新后也不见了。IdentityServer 的配置方式如下:

protected override Task HandleRequirementAsync(AuthorizationHandlerContext …
Run Code Online (Sandbox Code Playgroud)

asp.net-authorization jwt asp.net-core identityserver4 asp.net-core-5.0

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

如何禁用 git pull.rebase(在拉取时默认变基)

我试过设置

git config --global pull.rebase false
Run Code Online (Sandbox Code Playgroud)

git config pull.rebase false
Run Code Online (Sandbox Code Playgroud)

当我跑步时

git config --global pull.rebase
Run Code Online (Sandbox Code Playgroud)

或者

git config pull.rebase
Run Code Online (Sandbox Code Playgroud)

我看到错误,但是当我运行git pull ...它时,它仍然在进行变基。我怎样才能让这种情况再次消失?

git

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

通过curl抛出MapperParsingException索引数据?

我接受了来自elasticsearch教程的命令,

curl -XPUT "http://localhost:9200/movies/movie/1" -d" { "title": "The Godfather","director": "Francis Ford Coppola","year": 1972}"
Run Code Online (Sandbox Code Playgroud)

产生以下错误:

{
    "error":"MapperParsingException[failed to parse]; nested: JsonParseException[Unrecognized token 'The': was expecting ('true', 'false' or 'null')
             at [Source: [B@d809e3; line: 1, column: 27]]; ",
    "status":400
}

curl: (6) Could not resolve host: Godfather,director
curl: (6) Could not resolve host: Ford
curl: (3) [globbing] unmatched close brace/bracket in column 19
Run Code Online (Sandbox Code Playgroud)

任何人都可以请求帮助,我需要做些什么来纠正这个错误?

curl elasticsearch

3
推荐指数
1
解决办法
8317
查看次数