Javascript 为什么Node.js简单http服务器应用程序不能在服务器上运行?
我正在学习如何在服务器中使用Node.js应用程序(而不是我的本地计算机)。在这种情况下,为了创建一个简单的web服务器,我将遵循以下步骤 我已经安装了Node.js,并通过CLI测试了它的工作原理。我可以运行javascript代码,在CLI中生成输出,等等。但我无法使用浏览器通过URL使应用程序工作 我的应用程序文件夹结构非常简单:Javascript 为什么Node.js简单http服务器应用程序不能在服务器上运行?,javascript,node.js,lamp,Javascript,Node.js,Lamp,我正在学习如何在服务器中使用Node.js应用程序(而不是我的本地计算机)。在这种情况下,为了创建一个简单的web服务器,我将遵循以下步骤 我已经安装了Node.js,并通过CLI测试了它的工作原理。我可以运行javascript代码,在CLI中生成输出,等等。但我无法使用浏览器通过URL使应用程序工作 我的应用程序文件夹结构非常简单: index.js package.json package-lock.json 这是我目前在index.js中使用的代码: var http = requir
index.js
package.json
package-lock.json
这是我目前在index.js
中使用的代码:
var http = require('http'); // 1 - Import Node.js core module
var server = http.createServer(function (req, res) { // 2 - creating server
if (req.url == '/') { //check the URL of the current request
// set response header
res.writeHead(200, { 'Content-Type': 'text/html' });
// set response content
res.write('<html><body><p>This is home Page.</p></body></html>');
res.end();
}
else if (req.url == "/student") {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write('<html><body><p>This is student Page.</p></body></html>');
res.end();
}
else if (req.url == "/admin") {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write('<html><body><p>This is admin Page.</p></body></html>');
res.end();
}
else
res.end('Invalid Request!');
});
server.listen(5000); //3 - listen for any incoming requests
console.log('Node.js web server at port 5000 is running..')
var http=require('http');//1-导入Node.js核心模块
var server=http.createServer(函数(req,res){//2-创建服务器
如果(req.url=='/'){//,请检查当前请求的url
//设置响应头
res.writeHead(200,{'Content-Type':'text/html'});
//设置响应内容
res.write(“这是主页。”);
res.end();
}
else if(req.url==“/student”){
res.writeHead(200,{'Content-Type':'text/html'});
res.write(“这是学生页面。”);
res.end();
}
else if(req.url==“/admin”){
res.writeHead(200,{'Content-Type':'text/html'});
res.write(“这是管理页面。”);
res.end();
}
其他的
res.end('无效请求!');
});
服务器。听(5000)//3-侦听任何传入的请求
log('端口5000处的Node.js web服务器正在运行..')
如果我通过CLI转到应用程序文件夹并运行应用程序(node index.js),我可以看到预期的console.log()输出(端口5000处的node.js web服务器正在运行..)。但是如果我转到指向该文件夹的URL,我希望输出,这是主页。
,它不起作用(我得到的信息见下文)
我在应用程序文件夹中有一个具有文档根的域()。以下是我尝试过的:
- //浏览器显示index.js的源代码
- //浏览器显示错误连接超时
- //浏览器显示404错误
- //浏览器显示index.js的源代码
- //浏览器显示404错误
我尝试运行此应用程序的服务器是一台装有CentOS 7的LAMP机器。我已签入我的服务器(Nginx),您的代码运行正常 在阅读了@MinusFour的评论后,我怀疑您没有在服务器的安全组中打开5000端口 安全组就像 如果这不起作用,您还可以检查服务器的防火墙设置 至于您的域表达式:
- //浏览器显示index.js的源代码
- //浏览器显示错误连接超时
- //浏览器显示404错误(不正确)
- //浏览器显示index.js的源代码
- //浏览器显示404错误(不正确)
我没有超过50%的声誉要评论,所以我必须在这里回答。我已经检查了我的服务器(Nginx),您的代码运行良好 在阅读了@MinusFour的评论后,我怀疑您没有在服务器的安全组中打开5000端口 安全组就像 如果这不起作用,您还可以检查服务器的防火墙设置 至于您的域表达式:
- //浏览器显示index.js的源代码
- //浏览器显示错误连接超时
- //浏览器显示404错误(不正确)
- //浏览器显示index.js的源代码
- //浏览器显示404错误(不正确)
我没有超过50%的声誉可以评论,所以我必须在这里回答。“Jt不起作用”。任何东西“我在应用程序文件夹中有一个文档根目录为的域()。-除了指向您的web服务器之外,域实际上并不重要。但您需要告诉我们有关服务器安装的更多信息。你在说什么“文档根”?这是一台预配置了服务静态文件的软件的服务器吗?这不是运行node.js应用程序的方式。它对我来说很有用。如果您正在获取
index.js
文件的源代码,那么您正在端口80上运行另一个web服务器,但是如果您正在获取console.log
行,那么在端口5000
上应该可以工作。这也不是使用https
,因此您应该使用http
,并提供正确的URLexample.com:5000/
notexample.com/:5000
您使用的是哪种Linux?“Jt不起作用”。任何东西“我在应用程序文件夹中有一个文档根目录为的域()。-除了指向您的web服务器之外,域实际上并不重要。但您需要告诉我们有关服务器安装的更多信息。你在说什么“文档根”?这是一台预配置了服务静态文件的软件的服务器吗?这不是运行node.js应用程序的方式。它对我来说很有用。如果您正在获取index.js
文件的源代码,那么您正在端口80上运行另一个web服务器,但是如果您正在获取console.log
行,那么在端口5000
上应该可以工作。这也不是使用https
,因此您应该使用http
,并提供正确的URLexample.com:5000/
notexample.com/:5000
您使用的是哪种Linux?这是正确的答案!在我打开端口5000(并使用http而不是https)后,它工作了!非常感谢。这是