将url传递给模块
passing url to module
我如何得到url进入模块?
module.exports = function(app, Reviews, Anon, User, url){
var url = url;
console.log("url", url)// url is undefined
how to get url
function postHandler(req, res){
}
app.post("/individual/"+ url + "/usefulness", postHandler)
};
在routes.js中调用
var usefulness = require("./usefulness")(app, Reviews, Anon, User, app.locals.url)
尝试在routes.js中执行此操作
app.use("/*", function(req, res, next){
app.locals.url = req.path;
next()
})
编辑:我也尝试做app.set("url", app.locals.url)
在路由。js和做var url = app.get("url")
在有用的。js
如果我不在路由的处理程序中访问app.locals,那么我可能无法访问它。
你看我不能做像var usefulness = require("./usefulness")(app, Reviews, Anon, User, req.path)
这样的东西也许如果我能做一些这样的东西会有帮助
由于url的值是在请求之后设置的,因此可以执行以下操作
module.exports = function (app, Reviews, Anon, User) {
return function (url) {
app.post("/individual/"+ url + "/usefulness", function () {})
}
}
然后在routes.js
var usefulness = require("./usefulness")(app, Reviews, Anon, User)
// ...
app.use("/*", function(req, res, next){
app.locals.url = req.path
usefulness(apps.locals.url)
next()
})
不知道你为什么要在评论、匿名和用户上创建一个闭包
通过app.use
定义的快速中间件在到达与模式/*
匹配的路由之前不执行。当脚本运行时,require("./usefulness")
函数接受一个未定义的app.locals.url
作为参数。
用有效的app.locals.url
参数定义usefulness
的唯一方法是将require行移动到回调中:
var usefulness;
app.use("/*", function(req, res, next){
app.locals.url = req.path;
usefulness = require("./usefulness")(app, Reviews, Anon, User, app.locals.url)
next();
})
仍然需要在定义usefulness
和app.locals.url
之前到达一个匹配/*
的端点,但是app.local .url将在应用程序的生命周期内保留这个req.path
值。
希望有帮助!
相关文章:
- 在混合基本 URL 下动态加载 require.js 模块
- 在AngularJS$资源模块上请求之前获取URL
- 有没有什么好的节点模块可以连接google shortener API来缩短长URL
- 如何配置 gulpjs,以便 ngrok 模块可用于为 pagespeed insight 插件提供 url
- ASP.NET Javascript 揭示模块中的 RootPath 属性 @Url.Content(“~/”)
- 如何使用角度模块“ui-route”在指令中查找模板URL,而不会在MVC .NET上出现错误
- 无法使用请求模块处理 url
- ES6:从URL导入模块
- 要求基于ROOT URL+baseUrl+模块路径修复模块的JS加载
- 如何获得Liferay'的Javascript PortletURL模块,以使用友好的URL映射
- 如何在Angular文件上传模块中更新URL路径
- 在requirejs中只声明一次时,模块共享相同的url
- 如何从IIS重写模块获得JavaScript(或其他)重写的URL
- 如何使用这些Node模块通过文件或URL接受HTML,然后输出JSON作为现有HTML元素的验证
- 不能在Node.js上使用URL模块,不能调用方法'parse'的定义
- 获取requireJS模块URL
- 将url传递给模块
- 如何在所有模块中使用角度 1.5 中的相对 url
- ngTouch模块防止从href属性重定向到url
- 由于URL/散列模块依赖,Travis-CI构建失败