我想将我拥有的应用程序拆分为多个不同的应用程序。我想从表示层和逻辑层开始。我希望HTML,CSS和JS都在其自己的应用程序中,但后来在其自己的应用程序中运行后端代码(API)。我不明白如何在同一台服务器上运行。目前我的杂草丛生的应用程序在端口8080上运行,我使用Nginx对/
位置的端口8080执行proxy_pass。
我在这做什么?
答案 0 :(得分:0)
也许你可以运行多个节点实例,当然这需要是一个不同的版本。在不同的端口运行并与proxy_pass匹配。 我可能会帮助你。
答案 1 :(得分:0)
我的建议是使用视图引擎,例如EJS等。
在 node.js 中,您可以向用户发送HTML文件,例如当有人访问 www.domain.com/register 时,您会向他发送一个HTML文件,通过使用这样的东西:
var path = require('path'); // Core Module in Node JS
res.sendFile( path.join( __dirname, "register.html" ) ); // Send the register HTML file
虽然它不是最干净的解决方案,你也可以在代码中创建多个服务器,每个服务器使用不同的端口
由于您希望在同一台服务器上使用前端和后端,因此您可以在端口80上为前端创建一台服务器(如果您需要,则为443)使用SSL)和另一个端口上的其他服务器,例如3000,或者你想要的任何东西。
然后,您可以使用Ajax或类似的东西从服务器获取信息,这完全取决于您。
以下是一个例子:
const http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('Front End!');
res.end();
}).listen(80);
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('Back End!');
res.end();
}).listen(3000);
我个人总是会选择第一个例子,因为这是大多数人选择的,而且实施起来要容易得多。
此外,视图引擎允许您将 node.js 应用程序中的变量嵌入到HTML文件中,因此不需要Ajax等。