Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller Nodejs异步与同步方法负载测试_Model View Controller_Node.js_Asynchronous_Sync_Load Testing - Fatal编程技术网

Model view controller Nodejs异步与同步方法负载测试

Model view controller Nodejs异步与同步方法负载测试,model-view-controller,node.js,asynchronous,sync,load-testing,Model View Controller,Node.js,Asynchronous,Sync,Load Testing,我一直在尝试为MVC框架创建一个视图模块 我有两个版本的代码。一个是同步的,一个是异步的。 我知道我应该使用异步版本。然而,每当我通过AB进行负载测试时,我都会从同步版本中获得更好的结果 我做错什么了吗?这是我正在测试的代码示例 同步版本: var fs = require('fs'), path = require('path'), dot = require('dot'); Step = require('../libraries/step.js'); var vi

我一直在尝试为MVC框架创建一个视图模块

我有两个版本的代码。一个是同步的,一个是异步的。 我知道我应该使用异步版本。然而,每当我通过AB进行负载测试时,我都会从同步版本中获得更好的结果

我做错什么了吗?这是我正在测试的代码示例

同步版本:

var fs = require('fs'),
    path = require('path'),
    dot = require('dot');
    Step = require('../libraries/step.js');

var view = function(){};

view.prototype = {

    renderView : function(source, data, layout, callback)
    {
        var self = this;

        if (typeof callback !== 'function') throw ViewCallbackException;

        layout = layout ? layout : 'default';

        (function(sources, datas, layouts, callbacks)
        {
            content = fs.readFileSync('./views/layouts/' + layouts + '/index.html', 'utf-8');
            callbacks(null, content);
        })(source, data, layout, callback);
    }
}
var fs = require('fs'),
    path = require('path'),
    dot = require('dot');
    Step = require('../libraries/step.js');

var view = function(){};

view.prototype = {

    renderView : function(source, data, layout, callback)
    {
        var self = this;

        if (typeof callback !== 'function') throw ViewCallbackException;

        layout = layout ? layout : 'default';

        (function(sources, datas, layouts, callbacks)
        {
            Step(
                function()
                {
                    fs.readFile('./views/layouts/' + layouts + '/index.html', 'utf-8', this);
                },
                callbacks
            );
        })(source, data, layout, callback);
    }
}
异步版本:

var fs = require('fs'),
    path = require('path'),
    dot = require('dot');
    Step = require('../libraries/step.js');

var view = function(){};

view.prototype = {

    renderView : function(source, data, layout, callback)
    {
        var self = this;

        if (typeof callback !== 'function') throw ViewCallbackException;

        layout = layout ? layout : 'default';

        (function(sources, datas, layouts, callbacks)
        {
            content = fs.readFileSync('./views/layouts/' + layouts + '/index.html', 'utf-8');
            callbacks(null, content);
        })(source, data, layout, callback);
    }
}
var fs = require('fs'),
    path = require('path'),
    dot = require('dot');
    Step = require('../libraries/step.js');

var view = function(){};

view.prototype = {

    renderView : function(source, data, layout, callback)
    {
        var self = this;

        if (typeof callback !== 'function') throw ViewCallbackException;

        layout = layout ? layout : 'default';

        (function(sources, datas, layouts, callbacks)
        {
            Step(
                function()
                {
                    fs.readFile('./views/layouts/' + layouts + '/index.html', 'utf-8', this);
                },
                callbacks
            );
        })(source, data, layout, callback);
    }
}

也许是这样,因为您在第二个示例中使用的是步骤。为什么不正确地使用fs.readFile的回调函数fs.readFile'layout',utf8',functionerr,content{callbacksnull,content};。我已经尝试过使用readFile的常规回调函数。还是有同样的问题吗