Node.js / Express.js JavaScript:获取请求来自何处

格雷格·霍恩比

我正在将nodejs与expressjs模块一起使用来创建Web服务器。我当前的设置是这个

var express = require("C:/Program Files/nodejs/node_modules/express")
var app = express();
var server = require('http').createServer(app).listen(80);
var io = require('C:/Program Files/nodejs/node_modules/socket.io').listen(server, {log:false});
var path = require("path");
fs = require("fs");

有没有办法使用

app.use(function(req,res,next){
//code
})

获取请求来自何处?例如,如果在html页面上,您具有script标签

<script src="test.js"></script>

它发送了一个检索test.js的请求,我可以使用req参数查看对test.js的请求来自html页面并获取html页面的完整文件路径吗?

编辑:我正在尝试编写一个提供正确索引文件(index.html / .htm / .php等)的函数,如果您只是在url中输入目录(“ localhost / tests / chat /”),则问题出在然后是,当它从索引页面请求javascript文件时,它返回的目录太远了(搜索“ localhost / tests / test.js”而不是“ localhost / tests / chat / test.js”),并且仅如果您直接在网址(“ localhost / tests / chat / index.html”)中输入文件名,则可以使用。我的函数:

app.use(function(req,res,next){
    var getFullPath = path.join("public",req.path);
    console.log(req.path);
    if (fs.existsSync(getFullPath)) {
        if (fs.statSync(getFullPath).isDirectory()) {
            getFullPath = path.join(getFullPath,"index.html");
        }
        res.sendfile(getFullPath);
    } else {
        res.send("404 Not Found");
    }
});

我知道你可以使用

app.use(express.static(__dirname + '/public'));

但这为我的自定义php解析器模块给我带来了问题,因此这不是一个真正的选择

格雷格·霍恩比

我能够使用req.headers.referer来获取从中询问javascript文件的位置,因此可以指向javascript文件的正确位置。

getFullPath = path.join("public",req.headers.referer.split(req.host)[1],path.basename(req.path));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node JS:Express入门

来自分类Dev

如何在Express Node JS中获取删除请求的参数

来自分类Dev

Node.js-使用Express获取原始请求正文

来自分类Dev

通过Express从Node.js获取数据

来自分类Dev

Node.js Javascript和Express

来自分类Dev

Node.js Javascript和Express

来自分类Dev

使用Node JS和Express JS的HTTPS请求缓慢?

来自分类Dev

无法下载 Express Node JS

来自分类Dev

node.js(express)链接CSS / JS

来自分类Dev

无法使用Express从Node.js请求对象访问文件

来自分类Dev

使用node.js / express和AngularJS的CORS请求

来自分类Dev

express / node.js中的请求之间的同步问题

来自分类Dev

使用Express的Node.js:如何重定向POST请求

来自分类Dev

在Node Express JS的请求正文中传递数组

来自分类Dev

Node.js,Express无法路由参数化的GET请求

来自分类Dev

无法在Node.js / Express中访问请求正文数据

来自分类Dev

node.js + express + thread_a_gogo阻止请求

来自分类Dev

express / node.js中的请求之间的同步问题

来自分类Dev

无法在Node.js(Express)中提取请求数据

来自分类Dev

Node.js Express-代理请求后调用next()

来自分类Dev

Express node.js-请求JSON,异步处理

来自分类Dev

Node.js中的模块作用域-同时Express请求

来自分类Dev

将来自POST请求的数据流存储在GridFS,Express,mongoDB,node.js中

来自分类Dev

在GridFS,Express,mongoDB,node.js中存储来自POST请求的数据流

来自分类Dev

在Node.js中获取URL的响应(express / http)

来自分类Dev

无法在Node.js / Express中获取保存的图像

来自分类Dev

获取 URL 时 Node Js Express 静态文件失败

来自分类Dev

JavaScript文件未在express / node.js中加载

来自分类Dev

Angular JS Express JS Node JS文件上传问题

Related 相关文章

热门标签

归档