Node.js服务器自动启动
我是Node.js新手,但愿意认真尝试一下。来自PHP的东西似乎有点混乱,因为没有index.PHP,但是需要执行一个启动脚本来启动服务器Node.js服务器自动启动,node.js,Node.js,我是Node.js新手,但愿意认真尝试一下。来自PHP的东西似乎有点混乱,因为没有index.PHP,但是需要执行一个启动脚本来启动服务器npm start 这在生产中是如何做到的?是否有预运行脚本?如果服务器因某种原因关闭,如何在客户端没有连接问题的情况下自动恢复?它会自动为域工作,还是意味着有人必须访问domain.com:3000 Ar我的想法是错误的吗?如果服务器因某种原因关闭,您可以使用一些模块自动重新启动服务器。其中一些永远是pm2。你所问的问题非常广泛。让我来说明它是如何工作的 来
npm start
这在生产中是如何做到的?是否有预运行脚本?如果服务器因某种原因关闭,如何在客户端没有连接问题的情况下自动恢复?它会自动为域工作,还是意味着有人必须访问domain.com:3000
Ar我的想法是错误的吗?如果服务器因某种原因关闭,您可以使用一些模块自动重新启动服务器。其中一些永远是pm2。你所问的问题非常广泛。让我来说明它是如何工作的 来自PHP的东西似乎有点混乱,因为没有 php,但需要执行一个启动脚本来启动 服务器npm启动 因此,在node.js中,我们有一个文件,通过该文件启动节点服务器,并决定需要什么。大多数人使用app.js、server.js、index.js 当您运行
npm start
时,这意味着您将在文件写入的文件夹start:node app.js
中拥有package.json
。当你运行npm start时,它会着火
这在生产中是如何做到的?是否有预运行脚本
NODE\u ENV=production npm start
,您可以像这样在节点代码中访问它
process.env.NODE\u env
。通过这种方式,您可以为每个环境添加dev、qa标签
我会推荐你去看看
因此,你可以看看
您可以管理崩溃线程,然后打开另一个线程,因为节点是单线程。
此外,您还可以通过此命令管理node.js所有类型的错误。这将使node.js捕获所有异常和错误
过程论 这是否也意味着有人必须访问domain.com:3000 不,你可以选择任何你想要的港口。不管怎样。我建议在node.js应用程序前面使用nginx。但是,为了减少兼容性,可以使用简单的节点应用程序 例如:-
var http = require('http');
var port = 3000 ; // take any 80, 8080
http.createServer(function (request, response) {
response.writeHead(200, {
'Content-Type': 'text/plain',
'Access-Control-Allow-Origin' : '*'
});
response.end('Hello World\n');
}).listen(port);
希望有帮助。在回答第一个问题时,您还可以选择如何运行节点应用程序。我建议你开始使用一些软件包,比如 实际上是为了这个目的而建造的 在回答第二个问题时,如果您愿意,可以将其用于使用某些容器系统的生产部署。这里有一些选择,还有更多 您的自动重启问题可以由您的容器管理器或用于部署的包来解决
若要重定向来自80或443端口的所有请求(您希望重定向到应用程序),可以尝试使用nginx 在不详细说明的情况下,您必须非常清楚以下几点: 您的节点web进程将死亡。是的,这是正确的,当有一个未捕获的异常时,它可能会死亡。因此,故障切换需要多个进程,为此有许多技术和库。其中包括:
否节点将死亡的点是错误的。是的,如果我们不处理未捕获的异常,它将死亡,并且它们可以通过node.js中的
process
进行完全管理,但是使用process.on不是一个好的做法,因为我们应该解决这个错误。但是,如果你擅长它,你可以管理错误。若我们谈论服务器,每台服务器总有一天都会死掉。若你们捕捉到了所有的异常,那个么进程也不会死掉。这是我们用来制作工艺模具的方法。Process we can teamed,node.js的当前线程进程。感谢您的回答以及对PM2的参考+1.
var http = require('http');
var port = 3000 ; // take any 80, 8080
http.createServer(function (request, response) {
response.writeHead(200, {
'Content-Type': 'text/plain',
'Access-Control-Allow-Origin' : '*'
});
response.end('Hello World\n');
}).listen(port);