gpt4 book ai didi

javascript - 从模块内部访问 Express mountpath

转载 作者:行者123 更新时间:2023-11-30 16:56:59 27 4
gpt4 key购买 nike

为了尝试构建一个真正模块化的快速应用程序(一个可以独立运行或作为另一个应用程序的一部分运行的应用程序),我需要找出最干净的方法来从子应用程序内部找到安装路径。举个简短​​的例子,假设有两个文件:main.js 和 subapp.js

main.js

var express = require('express');
var app = express();
var localApp = express();
var subapp = require('./subapp');

app.use('/foo', subapp);
app.use('/bar', localApp);
console.log(localApp.mountpath); // yes, this prints '/bar' as expected
...

subapp.js

var express = require('express');
var app = express();

var truePath = app.mountpath; // I wish this would point to '/foo', but instead points to '/'

...
module.exports = app;

从模块内部找到挂载路径的最佳方法是什么(最干净的方法)?我这样做是为了解决这个问题:Access to mountpath variable from inside a template using express以非硬连线的方式。

如示例所示,已经尝试使用 app.mountpath 但没有成功

最佳答案

正如alstang的回答,这其实是一个执行顺序的问题,但可以用我认为干净的方式解决。有一个 event that is fired after the module is mounted ,所以你可以这样做:

var truePath = = "/";

app.on('mount', function (parent) {
truePath = app.mountpath;
});

在现实生活中 truePath 可能是 app.locals.truePath,因此可以从 View 内部访问它。

关于javascript - 从模块内部访问 Express mountpath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29553290/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com