我是 Node.js 新手,但愿意认真尝试。来自 PHP 的事情似乎有点令人困惑,因为没有 index.php,但需要执行启动脚本来启动服务器npm start。
这在生产中是如何完成的?有预运行脚本吗?如果服务器由于某种原因关闭怎么办,如何在客户端不出现连接问题的情况下自动恢复它?它会自动适用于该域,还是也意味着有人必须始终访问domain.com:3000?
我是否以错误的方式思考这个问题?
你所问的问题非常广泛。让我介绍一下它是如何工作的。
来自 PHP 的事情似乎有点令人困惑,因为没有 index.php,但需要执行启动脚本来启动服务器 npm start。
因此,在 Node.js 中,我们有一个文件,通过它启动节点服务器并决定我们想要什么。大多数人使用app.js , server.js , index.js
当您运行时npm start,这意味着您将package.json在该文件写入的文件夹中找到该文件start: node app.js。当你跑步时npm start,它就会着火。
这在生产中是如何完成的?有预运行脚本吗?
NODE_ENV=production npm start,您可以在节点代码中访问它,如下所示
process.env.NODE_ENV。这样你就可以为每个环境添加 dev,qa 标签。
我会推荐你看看
What if the server closes for some reason, how do I get it back up automatically without having connection problems for the clients?
Run Code Online (Sandbox Code Playgroud)
因此,您可以查看https://nodejs.org/api/cluster.html
您可以管理崩溃线程,然后打开另一个线程,因为节点是单线程。您还可以通过此管理node.js所有类型的错误。这使得node.js捕获所有异常和错误
https://nodejs.org/api/process.html
process.on
这是否也意味着有人总是必须访问domain.com:3000?
不,您可以选择任何您想要的港口。80,8080什么的。我建议在 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);
Run Code Online (Sandbox Code Playgroud)
希望这有帮助。
| 归档时间: |
|
| 查看次数: |
3931 次 |
| 最近记录: |