Javascript Angular2 RC1 zonejs导入和代理设计
我有一个项目在Angular的旧版本中,我现在正试图更新到RC.1 在我的旧版本中,Angular2文件(如Angular2/http等)是使用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调用。我现在使用的方法将会中断,因为它
标记加载到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);
});