Sim*_*max 1 node.js express iisnode
我正在使用在IISNode下的节点上运行的Expressjs创建一个应用程序(即在Windows上).
我开始的设置非常像我见过的所有expressjs示例:
backend.configure(function() {
backend.register('html', {
compile: function(str, options) {
return function(locals) {
return str;
};
}
});
backend.set('views', __dirname + '/views');
backend.set('view engine', 'html');
backend.set('view options', {
layout: false
});
backend.use(express.bodyParser());
backend.use(backend.router);
backend.use(express.static(__dirname + '/public'));
});
Run Code Online (Sandbox Code Playgroud)
让我说我的网站运行在localhost:// mysite.我必须按如下方式创建所有路由处理程序.
backend.get('/mysite/index', function(req, res, next) {
return res.render('index');
});
Run Code Online (Sandbox Code Playgroud)
即我必须用"mysite"为它们加上前缀.我见过的非例子都需要这个.这与IISNode或其他我没有配置的东西有关吗?
我一直在寻找这个功能,但是对于API路由,而不是静态文件.我做的是当我初始化路由器时,我添加了挂载路径.所以我的配置看起来像这样
//Default configuration
app.configure(function(){
app.use(express.compress());
app.use(express.logger('dev'));
app.set('json spaces',0);
app.use(express.limit('2mb'));
app.use(express.bodyParser());
app.use('/api', app.router); // <---
app.use(function(err, req, res, callback){
res.json(err.code, {});
});
});
Run Code Online (Sandbox Code Playgroud)
在调用路由器时请注意'/ api'