我还在学习节点,但有一件事我无法在任何地方找到答案。 我正在尝试部署一个简单的代码来读取URL的内容。它在localhost上工作正常但是当我部署到我的azure应用程序时它根本不起作用。 当我访问浏览器上的链接时,它显示一个空白屏幕。
这是代码
var http = require('http');
var server = http.createServer(function(request, response) {
const url = "http://www.google.com";
response.writeHead(200, {"Content-Type": "text/plain"});
http.get(url, res => {
res.setEncoding("utf8");
let body = "";
res.on("data", data => {
body += data;
});
res.on("end", () => {
console.log("End of response", port);
response.end('End of response.<br/>');
});
});
});
var port = process.env.PORT || 1337;
server.listen(port);
console.log("Server running at http://localhost:%d", port);
答案 0 :(得分:1)
当我访问浏览器上的链接时,它显示一个空白屏幕。
之前我遇到过类似问题,我尝试访问http://cn.bing.com
,但请求会自动重定向到https
,并且没有任何回复内容。
根据您的代码,我创建了我的Azure应用程序以检查此问题。
<强> app.js:强>
var http = require('http');
var server = http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
http.get("http://www.google.com", res => {
//check the status code
console.log(res.statusCode+','+res.headers['location']);
res.setEncoding("utf8");
let body = "";
res.on("data", data => {
body += data;
});
res.on("end", () => {
console.log("End of response", port);
response.end(body);
});
}).on('error',(e)=>{ //catch the error
console.error('Got error:'+e);
response.end('Got exception:'+e);
});
});
var port = process.env.PORT || 1337;
server.listen(port);
console.log("Server running at http://localhost:%d", port);
我的项目内容通过KUDU看起来像这样。
<强> TEST:强>
要验证日志,您可以Enable diagnostics logging并检查您的应用程序日志。此外,您可以将iisnode.yml
文件添加到您的网络应用根文件夹中,并具体说明您的日志配置,您可以按照Debug Node.js Web Apps on Azure的详细信息。
此外,这里有一些相关的教程,你可以参考它们:
How to deploy a node.js site into Azure Web App to create a Website