小编Ren*_*ama的帖子

如何知道快递仍在处理多少请求?

我正在尝试找到一种方法来了解服务器上是否有待处理的请求,以便我可以等待它们完成以正常关闭服务器。到目前为止我尝试过的是:

var express = require("express");
var app = express();

var count = 0;
app.use(function(req, res, next){
    count++;
    console.log(count);
    next();
    res.on("end", function(){ //PROBLEM HERE! This event does not exists!!!
        count = count - 1;
        console.log(count); 
    });
});

app.get("/", function(req, res, next){
    res.send("Ok!");
});

process.on('SIGINT', function () {
    if(count === 0) process.exit();
    else console.log("Can't shutdown! Pending requests...");
});

var server = app.listen(8021);
Run Code Online (Sandbox Code Playgroud)

那么处理这种情况的最佳方法是什么???我被困住了。

编辑:这应该是一项相当简单的任务。根据http://nodejs.org/api/net.html#net_server_close_callback

停止服务器接受新连接并保留现有连接。该函数是异步的,当所有连接结束并且服务器发出“close”事件时,服务器最终关闭。或者,您可以传递回调来侦听“关闭”事件。

我可以简单地做:

process.on('SIGINT', function () {
    console.log("Exiting");
    server.close();
    server.on("close", function(){
        console.log("Exited");
        process.exit(0);
    });
});
Run Code Online (Sandbox Code Playgroud)

但我的回调on …

node.js express

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

为什么我在设置按钮时随机获取字符串"Ã-"而不是"×":在{content}之后?

我使用以下css来设置删除标记的按钮的文本:

button.close:after {
  content: '×';
}
Run Code Online (Sandbox Code Playgroud)

这会产生一个好看的按钮,如下所示:

好看的关闭按钮

但是随机的字符串×会被字符串替换掉Ã-.我首先想到这可能与编码有关,但如果确实是问题,我认为这不会随机发生.它发生在一个低频率,此时它没有发生(一旦它再次发生,将用另一个打印屏幕更新问题).

这个css代码来自.less我正在编译然后缩小然后连接的文件.

如何确保字符串×始终显示?

html css less

5
推荐指数
2
解决办法
1668
查看次数

如何处理微服务架构中的身份验证

我目前正在阅读很多关于微服务的内容,但我仍然不了解某些部分.我做了以下抽奖:

在此输入图像描述

每个微服务有2个访问:

  • REST:用于http用途
  • gRPC:用于内部/后台通信/交换

如果我想登录,我可以发送一个Http请求到我的身份验证服务.但是,如果我想访问需要您已连接的Stuff服务呢?

假设用户想要显示数据库STUFF中可用的东西,服务Stuff将首先检查连接用户的"令牌"是否正确,通过与Authentication服务交换,然后返回东西或"登录"要求".

所以我不明白的是,如果需要连接客户端的每个服务需要与身份验证交换,那么它将创建一个巨大的互联网流量,以便检查每个用户请求..所以我虽然做一个身份验证服务每个服务,但由于我应该只有一个数据库,那么数据库会减慢流量吗?

另外,如果我理解,每个微服务应该在不同的服务器上,而不是同一个服务器上?

我希望我很清楚,不要犹豫,要求更多细节!

提前致谢 :)

马克斯

编辑1

根据@ notionquest的回答:

所以它看起来应该更合适吗?

在此输入图像描述

此外,根据Peter的评论,每个服务都可以实现自己的中间件(如上所述的JWT),因此API网关只是一个"传递".但是,我觉得这对我来说不是很好,因为每个服务都会对每个内部交换进行一次令牌检查,不是吗?

对于这些东西,它很容易,因为它只检查一次令牌.现在,让我们说,在用户拿到东西后,他选择一个并想购买它.然后"购买服务"将调用服务服务,以验证项目的价格,但是...它将必须检查用户令牌,因为这些东西是"经过身份验证的访问",因此这意味着"购买" "服务和"东西"服务都检查令牌,这增加了额外的检查.

我虽然关于服务之间的内部保证访问但是它值得吗?

此外,也许你说为每个服务实现中间件,因为他们有REST访问权限,但API网关只会破坏拥有REST访问权限的想法

microservices grpc

5
推荐指数
2
解决办法
1295
查看次数

什么是平台即服务?

我的问题是平台即服务究竟是什么,以及我的IaaS和SaaS概念是否真的正确.

IaaS:当您在机器级别指定您的需求时,您正在使用IaaS,这意味着当您能够决定托管在云上的应用程序是在1.7GHz机箱还是2.5Ghz机箱内运行时.甚至你需要多少箱子.

SaaS:当您在用户级别使用托管在互联网上的软件时.因此,如果您使用Google Docs,则使用SaaS.

我无法明确表示什么是平台即服务.当我读到这样的东西时,我的怀疑就出现了:

云计算已经发展到包括用于构建和运行自定义应用程序的平台,这个概念被称为"平台即服务"(或称为PaaS).PaaS应用程序也称为按需,基于Web或软件即服务(或SaaS)解决方案.[ http://www.salesforce.com/paas/ ]

这是否意味着PaaS和SaaS是一样的?我现在还不能理解,而且我不确定PaaS是什么时候出租,例如,云上的数据库,比如说,SQL Azure ......你租的东西不是直接的基础设施,也不是软件,而是帮助您开发最终SaaS产品的东西.我对吗???

cloud paas

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

为什么插入排序总是在此实现中击败合并排序?

我不明白:为什么我的插入排序实现每次跳过合并排序,对于任何大小的n

    public List<Int32> InsertionSort(List<Int32> elements, Boolean ascending = true)
    {
        for (Int32 j = 1; j < elements.Count; j++)
        {
            Int32 key = elements[j];
            Int32 i = j - 1;

            while (i >= 0 && (elements[i].CompareTo(key) > 0) == ascending)
                elements[i + 1] = elements[i--];

            elements[i + 1] = key;
        }

        return elements;
    }
Run Code Online (Sandbox Code Playgroud)
    public List<Int32> MergeSort(List<Int32> elements, Boolean ascending = true)
    {
        Sort(elements, 0, elements.Count - 1);

        return elements;
    }

    private void MergeSort(List<Int32> elements, Int32 startIndex, Int32 …
Run Code Online (Sandbox Code Playgroud)

c# algorithm mergesort insertion-sort

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

JavaScript日期验证功能

任何人都可以解释foll JS函数如何验证日期,需要的形式为mm/dd/yyyy.

<script type="text/javascript">

function checkdate(input){
    var validformat=/^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity
    var returnval=false
    if (!validformat.test(input.value))
        alert("Invalid Date Format. Please correct and submit again.")
    else{ //Detailed check for valid date ranges
        var monthfield=input.value.split("/")[0]
        var dayfield=input.value.split("/")[1]
        var yearfield=input.value.split("/")[2]
        var dayobj = new Date(yearfield, monthfield-1, dayfield)
        if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
            alert("Invalid Day, Month, or Year range detected. Please correct and submit again.")
        else
            returnval=true
    }
    if (returnval==false) input.select()
        return returnval
}
</script>
Run Code Online (Sandbox Code Playgroud)

javascript

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

哪个.NET类代表WebForms的主要CONTROLLER类?

嘿伙计们,最近我正在学习一些Java,当我被教导一种实现控制器类的方法时,它的重要性是将请求重定向到一个Action,它执行指定的工作.这就是我学到的方式;

@Override
protected void service(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException {

    try {
        String clazz = req.getRequestURI().replaceAll(req.getContextPath() + "/", "").replaceAll(".java", "");
        ((Action)Class.forName("com.myProject.actions." + clazz).newInstance()).execute(req, res);
    } catch (Exception e) {
        e.printStackTrace();
    }

}
Run Code Online (Sandbox Code Playgroud)

我知道WebForms也适用于HANDLERS,这是一种行为.例如,每个.aspx页面都继承自Page对象,该对象是该指定页面的处理程序.

我无法弄清楚的是,哪个类首先获取请求并将其转换为指定的操作(页面处理程序)?它是WebForms功能(实现)还是IIS的可接受性?那么,哪个类代表WebForms的主控制器?

非常感谢你.

.net c# webforms controller

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

在更改Google地图位置时遇到问题

当我尝试更改位置时,我遇到了问题.我已连接到地图

var mapOptions = {
   zoom: 7,
   center: new google.maps.LatLng(48.379433, 31.165579999999977),
   mapTypeControl: false,
   mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
Run Code Online (Sandbox Code Playgroud)

现在我需要在地图上更改位置

<select onChange="changeCity()" id="city"><option value="50.4501, 30.523400000000038">????</option><option value="49.839683, 24.029717000000005">?????</option></select>
Run Code Online (Sandbox Code Playgroud)

为此,我正在使用:

function changeCity() {
   var city = document.getElementById('city').value;
   var city_1 = new google.maps.LatLng(city);
   map.setCenter(city_1);
}
Run Code Online (Sandbox Code Playgroud)

但没有任何反应(我看到灰色区域).请帮忙...!

html javascript google-maps

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

如何防止underscore.js模板创建不需要的空行?

我正在使用Yeoman创建一个生成器,而Yeoman又使用underscore.js模板.
在给定的文件中,我有这个代码:

var
    <% _.each(requires, function(require) { %>
    <% if(require.shouldApply) { %>
    <%= _.camelize(require.name) %> = require('<%= require.name %>'),
    <% } %>
    <% }); %>
    mongoose = require('mongoose'),
    Schema = mongoose.Schema;
Run Code Online (Sandbox Code Playgroud)

鉴于require.shouldApply有时是假的我不希望产生空白行.

所以,例如,对于输入requires: [{shouldApply: false, name: 'zoo'}, {shouldApply: false, name: 'foo'}, {shouldApply: true, name: 'bar'}]我得到这个:

var
    zoo = require('zoo'), //note that the line below is blank

    bar = require('bar'), //I don't want the blank line above
    mongoose = require('mongoose'),
    Schema = mongoose.Schema;
Run Code Online (Sandbox Code Playgroud)

有谁知道如何防止underscore.js模板创建这些不需要的空白行?

javascript templates node.js underscore.js yeoman

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

如何确保我的网站不被黑客攻击?

我有一个供家族企业使用的网站.我只有几页和一些产品目录.不会有任何在线交易或付款.只是一些html页面,javascript文件和存储在xml文件中的产品目录.

我想知道如何确保我的网站被黑客攻击相当安全?我能做什么,至少实现一定程度的安全性,例如,我该怎样做才能确保我的xml文件不会被某人更改或访问?

xml security web

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

在asp中的gridview中使用eval获取此对象

我无处可寻.我想在gridview中的数据绑定表达式中引用行对象本身,如下所示:

<asp:TemplateField HeaderText="Description">
    <ItemTemplate>
        <asp:Label runat="server" 
                   Text = '<%# GetPendingReason(Eval("this")) %>' />                                    
    </ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为"this"不涉及任何属性.引用单个属性可以正常工作,但是如何引用当前行?

asp.net data-binding gridview eval

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

为什么我不能在我的控制器内的新线程中使用@In(使用jboss seam)注入依赖项?

我有依赖注入的麻烦,因为我对Seam很新,我可能会以错误的方式做某事!

我需要在一个从控制器内触发的新线程上注入依赖项 - 我没有例外,但它们只是来了null.首先,我尝试d1在线程中重复使用(见下文),但是null我有了这个想法,再次注释这个对象@In...不幸的是同样的事情发生了(得到了空)!

@Scope(ScopeType.CONVERSATION)
@Name("myController")
public class MyController{
    @In(create = true)
    private Dependency1 d1; //ok, gets injected with no problems!

    public void importantMethod(){
        //this part of the method is important and is fast
        //but below comes an expensive part that takes some minutes

        new Thread(new Runnable(){
            @In(create = true)
            private Dependency1 anotherD1;  //I still need d1 here!!!       

            @Override
            public void run(){
                //I want to run expensive code here.
                //A new thread …
Run Code Online (Sandbox Code Playgroud)

java dependency-injection seam

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

为什么这个Merge Sort java脚本实现不起作用?

我已经尝试了一整天,似乎无法找出它为什么不起作用.我认为问题在于我使用JavaScript语言的技巧.我可能会错过一些关于参数传递的概念.你能告诉我错误在哪里吗?

这是我的实现,基于我一年前在C#中编写的另一个实现,可以在这里找到.

所以这里是代码(您可以直接在Chromes控制台上尝试,只需复制/粘贴它就会"工作"):

function merge(A, p, q, r){
    var n1 = q - p + 1;
    var n2 = r - q;

    var i = 0;
    var j = 0;

    var L = [];
    while (i < n1){
        L.push(A[p + i++]);
    }

    var R = [];
    while(j < n2){
        R.push(A[q + j++ + 1]);
    }

    L.push(Number.MAX_VALUE);
    R.push(Number.MAX_VALUE);

    i = 0; 
    j = 0; 

    var k = p;
    while(k <= r){
        if(L[i] <= R[i]){
            A[k] = L[i];
            i = …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm mergesort

0
推荐指数
1
解决办法
270
查看次数