我基于the documentation of Durandal创建了一个新的NodeJS站点。它在本地工作。我设置了Windows Azure以引入my GitHub repository的更改,这是正确的。
但是,(启用错误后)我收到an internal server error。
我检查了我的FTP日志,但没有。有一个'Git'文件夹,但没有什么有趣的。
当我将server.js文件更改为hello world示例时,一切正常:
var http = require('http')
var port = process.env.PORT || 1337;
http.createServer(function(req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
}).listen(port);
这是我的server.js现在:
var express = require('express'),
routes = require('./routes'),
engines = require('consolidate');
exports.startServer = function(config, callback) {
var port = process.env.PORT || config.server.port || 1337;
var app = express();
var server = app.listen(port, function() {
console.log("Express server listening on port %d in %s mode", server.address().port, app.settings.env);
});
app.configure(function() {
app.set('port', port);
app.set('views', config.server.views.path);
app.engine(config.server.views.extension, engines[config.server.views.compileWith]);
app.set('view engine', config.server.views.extension);
app.use(express.favicon());
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.compress());
app.use(config.server.base, app.router);
app.use(express.static(config.watch.compiledDir));
});
app.configure('development', function() {
app.use(express.errorHandler());
});
app.get('/', routes.index(config));
callback(server);
};
那么,是否有人在Windows Azure上成功托管了Express(或更具体地说,Mimosa的Durandal骨架)NodeJS站点?或者你知道我在哪里或哪里可以找到内部服务器错误吗?
答案 0 :(得分:1)
我在Windows Azure平台上发布了一些快速应用程序,发现我有几个静态失败的实例。我个人已经发现Jay Harris在post中提出的方法非常有用,因为它允许我导入依赖项(npm,bower或其他)并运行grunt任务来编译项目等。
值得注意的一点是,通常在新部署之后,直到在控制面板中重新启动Azure服务器才会显示更新。有时部署脚本会超时,我必须定期检查它们。
这并不能完全回答你的代码有什么问题(对不起),但是我发布了example使用上面提到的可能有用的方法。主要的部署文件是'web.config','deploy.sh'和'.deployment'以及'package.json'文件。