在 Node.js 中是否可以创建虚拟文件夹,如果可以,如何创建
In Node.js is it possible to create a virtual folder if so how
在 Node.js 中是否可以创建虚拟文件夹,如果可以如何创建?
需要虚拟文件夹的一些上下文:
例如,Node.js 中有一个中间件项目正在监听端口 400,因此可以按照 http://{IP}:400/?p={%22getWebhooks%22:true}
向我的端点发出请求。端口 400 打开以发出外部请求。
在同一台服务器中还有另一个中间件 .NET/C# 使用端口 80,它只能在服务器内部工作(它被外部阻止)
该项目用于将图像集成到其他数据中,这些图像保存在该 .NET 项目下的文件夹中,Node.js 需要访问文件夹中的这些图像(以避免必须请求另一个端口)对外开放/public IP)
Node.js 项目在 C:\nodeProject
http://{IP}:400/?p={%22getWebhooks%22:true}
Images 文件夹位于 C:\inetpub\wwwroot\{.netProject}\back_office\resources
以避免需要为 IIS 打开另一个端口,例如端口 200 来提供图像
http://{IP}:200/resources/images.jpg
想使用 Node.js 提供图像
http://{IP}:400/resources/images.jpg
不使用 express.js 使用 http 模块
var server = http.createServer(function (req, res) {
不知道节点静态包是否可用于此用例...
感谢您给我指明正确方向的任何信息。
正如@Molda 通过使用包 node-static 解决了我的问题但不得不在我的应用程序内部使用,如下面的代码,其中 query === null
是查看请求是否没有参数的条件它是一张图像,以其他方式提供,它是对我的 Node.js 应用程序中间件端点的正常请求。
var staticNode = require('node-static');
var fileServer = new staticNode.Server('C:/inetpub/wwwroot/example/back_office/resources/');
var server = http.createServer(function (req, res) {
let body = []
req.on('error', (err) => {
console.error(err);
}).on('data', chunk => {
body.push(chunk);
}).on('end', () => {
let bodyResponse;
if (body.length > 0) {
bodyResponse = JSON.parse(body);
//console.log(body);
console.log(bodyResponse);
}
//var page = url.parse(req.url).pathname;
var query = url.parse(req.url).query
var params = querystring.parse(query);
if(query === null){
fileServer.serve(req, res);
}else{
if ('p' in params && isJSON(params['p'])) {
var p = JSON.parse(params['p']);
switch (Object.keys(p)[0]) {
...
}
} else {
res.write(JSON.stringify({
"errorMessage": "invalid request format"
}));
res.end();
}
}
}).resume();
});
在 Node.js 中是否可以创建虚拟文件夹,如果可以如何创建?
需要虚拟文件夹的一些上下文:
例如,Node.js 中有一个中间件项目正在监听端口 400,因此可以按照 http://{IP}:400/?p={%22getWebhooks%22:true}
向我的端点发出请求。端口 400 打开以发出外部请求。
在同一台服务器中还有另一个中间件 .NET/C# 使用端口 80,它只能在服务器内部工作(它被外部阻止) 该项目用于将图像集成到其他数据中,这些图像保存在该 .NET 项目下的文件夹中,Node.js 需要访问文件夹中的这些图像(以避免必须请求另一个端口)对外开放/public IP)
Node.js 项目在 C:\nodeProject
http://{IP}:400/?p={%22getWebhooks%22:true}
Images 文件夹位于 C:\inetpub\wwwroot\{.netProject}\back_office\resources
以避免需要为 IIS 打开另一个端口,例如端口 200 来提供图像
http://{IP}:200/resources/images.jpg
想使用 Node.js 提供图像
http://{IP}:400/resources/images.jpg
不使用 express.js 使用 http 模块
var server = http.createServer(function (req, res) {
不知道节点静态包是否可用于此用例...
感谢您给我指明正确方向的任何信息。
正如@Molda 通过使用包 node-static 解决了我的问题但不得不在我的应用程序内部使用,如下面的代码,其中 query === null
是查看请求是否没有参数的条件它是一张图像,以其他方式提供,它是对我的 Node.js 应用程序中间件端点的正常请求。
var staticNode = require('node-static');
var fileServer = new staticNode.Server('C:/inetpub/wwwroot/example/back_office/resources/');
var server = http.createServer(function (req, res) {
let body = []
req.on('error', (err) => {
console.error(err);
}).on('data', chunk => {
body.push(chunk);
}).on('end', () => {
let bodyResponse;
if (body.length > 0) {
bodyResponse = JSON.parse(body);
//console.log(body);
console.log(bodyResponse);
}
//var page = url.parse(req.url).pathname;
var query = url.parse(req.url).query
var params = querystring.parse(query);
if(query === null){
fileServer.serve(req, res);
}else{
if ('p' in params && isJSON(params['p'])) {
var p = JSON.parse(params['p']);
switch (Object.keys(p)[0]) {
...
}
} else {
res.write(JSON.stringify({
"errorMessage": "invalid request format"
}));
res.end();
}
}
}).resume();
});