【发布时间】:2014-03-26 04:56:53
【问题描述】:
我基于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 站点?或者您知道如何或在哪里可以找到内部服务器错误?
【问题讨论】:
-
如果你弄明白了,我很想知道将一个普通的 Mimosa/Durandal 应用程序转变为 Azure 托管的应用程序所需的步骤。有点像 Heroku 步骤:mimosa.io/about.html#Heroku
-
我目前正在研究它(在我的空闲时间)。我一定会让你知道的。马克的回答让我开始了一条新的道路。找到解决方案后我会更新。
-
@DavidBashford 我已经开始工作了,blogged 对此进行了广泛的讨论。简而言之,您需要让 Azure 拉入 /dist 内容并启动 app.js,而不是 server.js。
标签: node.js azure express mimosa