node.js - 在 Node.js 中是否可以创建一个虚拟文件夹,如果可以的话
问题描述
如果可以的话,在 Node.js 中是否可以创建一个虚拟文件夹?
需要虚拟文件夹的一些上下文:在 Node.js 中有一个作为中间件的项目正在监听端口 400,例如,可以向我的端点发出请求,如下所示http://{IP}:400/?p={%22getWebhooks%22:true}
。端口 400 开放以发出外部请求。
在同一台服务器中,还有另一个使用端口 80 的 .NET/C# 中间件,它只在服务器内部工作(它被外部阻止)这个项目用于将图像与其他数据集成,这些图像保存在下面的文件夹中Node.js 中的那个 .NET 项目需要访问文件夹中的这些图像(以避免不得不要求另一个端口向外部/公共 IP 开放)
Node.js 项目位于C:\nodeProject
http://{IP}:400/?p={%22getWebhooks%22:true}
图片文件夹位于C:\inetpub\wwwroot\{.netProject}\back_office\resources
避免需要另一个为 IIS 开放的端口,例如端口 200 来提供图像
http://{IP}:200/resources/images.jpg
想要使用 Node.js 提供图像
http://{IP}:400/resources/images.jpg
不使用 http 模块的 express.js
var server = http.createServer(function (req, res) {
不知道 node-static 包是否可以用于这个用例......
感谢您提供任何为我指明正确方向的信息。
解决方案
正如@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();
});
推荐阅读
- firebase - Firebase 应用分发电子邮件未发送给测试人员
- php - PHP preg_replace 给出空字符串
- typescript - Firestore 复合间隔日期查询
- git - 尝试在 vscode powershell 终端中使用命令 git init 但出现错误:git:术语“git”未被识别为 cmdlet 的名称
- javascript - next.js project Invalid escape sequence in template error for css block [已解决]
- mysql - 使用子查询和连接优化查询
- python - Flask 和 Flask_SQLAlchemy 中的循环导入错误
- python - 为具有多对一关系的两个模型创建 List APi
- discord.js - 怎么知道用户的最高权限?不和谐.js
- ignite - 创建缓存后立即触发分区丢失