【发布时间】:2013-03-04 22:01:36
【问题描述】:
我是 nodejs 的新手。我想建立一个包含多个类别的休息服务。
> app.js
var express = require('express')
, http = require('http')
, routes = require('./routes')
, path = require('path');
app = express();
app.use(app.router);
app.get('*',routes.index);
app.listen(3000);
console.log('Express app started on port 3000');
和
> routes/index.js
var sites = [
'sve',
'ice'
];
exports.index = function(req,res){
var url = req.url.split('/');
for (i in sites) {
app.get('/' + sites[i] + '/*',require('./' + sites[i]));
}
};
和
> routes/sve/index.js
module.exports = function(req, res){
console.log('sve')
res.end({category:'sve'});
};
和
> routes/sve/index.js
module.exports = function(req, res){
console.log('sve')
res.end({category:'sve'});
};
当我运行“节点应用程序”时,我得到“Express 应用程序在端口 3000 上启动”并且服务器正在运行,但是当我访问“localhost:3000/sve/test”时我没有响应或“localhost:3000/ice/测试”,甚至是“localhost:3000/abc/test”。 甚至在控制台中也没有。
我做错了什么?
【问题讨论】:
-
我不太确定您要做什么,但您似乎正在尝试挂载子应用程序?以便 mydomain.com/ice/* 的所有内容都由一组特定于 ice 等的不同路由处理?
-
是的,我想将应用程序拆分为不同的子应用程序。当检测到 /sve/ 时运行一段代码,当检测到 /ice/ 时,运行另一段代码