假设我正在编写一个带有服务器和客户端的 Web 应用程序。
- 服务器用作 API,并使用express框架。
- 客户端只是一个
node-static
提供静态 javascript/html 文件的应用程序。
我希望能够单独部署它们,彼此独立 - 或同时部署两者。
这是我设想的目录结构:
/my-app
app.js
/server
server.js
/client
client.js
我希望能够以 3 种不同的方式运行它:
仅在某个端口(例如 3000)上运行服务器(API):
my-app/server> node server.js ...Server listening on localhost:3000/api
只运行客户端(即从 /client 目录提供静态文件):
my-app/client> node client.js ...Server listening on localhost:4000/client
在同一端口上运行服务器和客户端(通过单个 node.js 实例):
my-app> node app.js ...Server listening on localhost:5000
这可能在节点中吗?配置它的正确方法是什么?
我开始如下:
/////////////
// server.js
/////////////
// Run the server if this file is run as script
if(module.parent){
app.listen("3000/client")
}
/////////////
// client.js
/////////////
var static = require('node-static');
var file = new(static.Server)('.');
var app = require('http').createServer(function (request, response) {
request.addListener('end', function () {
file.serve(request, response);
});
});
if(module.parent){
app.listen("4000/client");
}
/////////////
// app.js
/////////////
server = require("server/server.js")
server.app.listen("5000/api")
client = require("client/client.js")
client.app.listen("5000/client") <--- ?????
我不确定如何在我的app.js中连接客户端和服务器,以便它们都从同一个端口/进程/线程等提供服务......
注意:请原谅代码,它未经测试并且可能不正确。我是 node.js 的新手
任何提示表示赞赏。