Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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
Javascript Angular2 RC1 zonejs导入和代理设计_Javascript_Proxy - Fatal编程技术网

Javascript Angular2 RC1 zonejs导入和代理设计

Javascript Angular2 RC1 zonejs导入和代理设计,javascript,proxy,Javascript,Proxy,我有一个项目在Angular的旧版本中,我现在正试图更新到RC.1 在我的旧版本中,Angular2文件(如Angular2/http等)是使用标记加载到index.html中的。现在在RC1中,它们通过zonejs加载 Zonejs发出请求,例如@angular/core,我必须找到一种方法让我的代理将这些请求重定向到node_modules文件夹中 在我的代理上,我有两个函数,一个解析URL,一个发出请求并充当“代理” 我不知道如何重定向@angular调用。我现在使用的方法将会中断,因为它

我有一个项目在Angular的旧版本中,我现在正试图更新到RC.1

在我的旧版本中,Angular2文件(如Angular2/http等)是使用
标记加载到
index.html
中的。现在在RC1中,它们通过zonejs加载

Zonejs发出请求,例如
@angular/core
,我必须找到一种方法让我的代理将这些请求重定向到node_modules文件夹中

在我的代理上,我有两个函数,一个解析URL,一个发出请求并充当“代理”

我不知道如何重定向
@angular
调用。我现在使用的方法将会中断,因为它总是进入ParseUrl函数,并且通过在每次@angular调用中添加index.js,它最终会进入一个无限循环。我应该如何允许客户端正确访问@angular文件夹

var ParseUrl = function(Url : string) {
var api_name = (Url).substring(1,Url.slice(1).indexOf('/')+1);
console.log("DEBUG: " + Url);
if (api_name === 'dynamic-components' || api_name === 'framework' || api_name === 'node_modules')
    return {
                "api_name" : "",
                 "api_endpoint" : "",
                 "url" : host + ':' + port + Url + '.js' };
    if (api_name === '@angular')
        return {
                "api_name" : "",
                 "api_endpoint" : "",
                 "url" : host + ':' + port + '/node_modules/' + Url + '/index.js' };
    if(api_name === 'framework' || api_name === 'public')
        return undefined;
    var api_endpoint = GetAPIEndPoint(api_name);
    console.log("DEBUG: " + api_endpoint);
    if (api_endpoint == -1)
        return null;
    var url = (Url).slice(api_name.length+1);
    console.log("DEBUG: " + url);
    return { "api_name" : api_name,
             "api_endpoint" : api_endpoint,
             "url" : url };
}


app.use('/public', express.static(path.resolve(__dirname, 'public')));
app.use('/framework', express.static(path.resolve(__dirname, 'framework')));
app.use('/dynamic-components', express.static(path.resolve(__dirname, 'dynamic-components')));
app.use('/node_modules', express.static(path.resolve(__dirname, '/../node_modules')));
app.use('/@angular', express.static(path.resolve(__dirname,'/../node_modules/@angular')));

app.get('/*/*', function (req, res, next) {
    var parsedUrl = ParseUrl(req.originalUrl);
    setTimeout(() => {
        if (parsedUrl === undefined) {
            console.log('undef');
            return;
        }
        if (parsedUrl === null) {
            next();
            return;
        }
        request(parsedUrl.api_endpoint + parsedUrl.url).pipe(res);
}, 30);
});