我想使用express向我的应用程序提供静态数据并处理对受保护API的请求。假设我有这个文件夹结构:
root/
node_modules/
dist/
app/
server/
app.js // Main server file.
src/
app/
assets/
css/
img/
index.html
我希望从node_moduels/
访问dist/app/
,assets/
和index.html
。如果网址如下所示会很棒:http://localhost:port
和app.js
不必直接在root/
。是否可以使用express.static()
?如果是的话,你会怎么做?如果没有,需要在上面提到的文件夹结构中进行哪些更改?
答案 0 :(得分:1)
Setup Method
...
UITabBar *myTabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 430, 320, 10)];
myTabBar.delegate=self;
[self.view addSubview:myTabBar];
[myTabBar setBackgroundColor:[UIColor blackColor]];
NSMutableArray *tabBarItems = [[NSMutableArray alloc] init];
UITabBarItem *tabBarItem1 = [[UITabBarItem alloc] initWithTitle:@"Item1" image:[UIImage imageNamed:@"settings-25.png"] tag:0];
UITabBarItem *tabBarItem2 = [[UITabBarItem alloc] initWithTitle:@"Item2" image:[UIImage imageNamed:@"settings-25.png"] tag:1 ];
UITabBarItem *tabBarItem3 = [[UITabBarItem alloc] initWithTitle:@"Item3" image:[UIImage imageNamed:@"settings-25.png"] tag:2 ];
UITabBarItem *tabBarItem4 = [[UITabBarItem alloc] initWithTitle:@"Item4" image:[UIImage imageNamed:@"settings-25.png"] tag:3 ];
[tabBarItems addObject:tabBarItem1];
[tabBarItems addObject:tabBarItem2];
[tabBarItems addObject:tabBarItem3];
[tabBarItems addObject:tabBarItem4];
myTabBar.items = tabBarItems;
myTabBar.selectedItem = [tabBarItems objectAtIndex:0];
}
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
NSInteger selectedTag = tabBar.selectedItem.tag;
NSLog(@"%ld",(long)selectedTag);
if (selectedTag == 0) {
[[tabBar.items objectAtIndex:0] setImage:[UIImage imageNamed:@"settings-32.png"]];
[[tabBar.items objectAtIndex:0] setTitle:@"B Item 1"];
} else if(selectedTag == 1) {
[[tabBar.items objectAtIndex:1] setImage:[UIImage imageNamed:@"settings-32.png"]];
[[tabBar.items objectAtIndex:1] setTitle:@"B Item 2"];
} else if(selectedTag == 2) {
[[tabBar.items objectAtIndex:2] setImage:[UIImage imageNamed:@"settings-32.png"]];
[[tabBar.items objectAtIndex:2] setTitle:@"B Item 3"];
} else if(selectedTag == 3) {
[[tabBar.items objectAtIndex:3] setImage:[UIImage imageNamed:@"settings-32.png"]];
[[tabBar.items objectAtIndex:3] setTitle:@"B Item 4"];
}
}
可以去任何地方。只需在您的app.js
脚本中引用它,例如:
package.json
您可以拥有多个静态文件夹。使用相对于...
"scripts": {
"start": "node dist/server/app.js"
},
...
的目录。例如:
app.js
然后您将投放var app = express();
app.use(express.static(__dirname + '/../../src'));
app.use(express.static(__dirname + '/../../src/assets'));
,它可以直接引用src/index.html
中的资产。尽管有可能,但最好调整布局以匹配服务方式并使用单根。特别是,提供src/assets
文件夹似乎是一个坏主意。 npm用于服务器端代码,也许您应该使用bower来管理客户端软件包。