我不确定如何调用它,并且通过有限的搜索我没有找到我想要的东西,所以我将解释:
我有路由登录,其中有2个参数,即key和callbackURL:
app.get('/login*', function (req, res) {
var adr = url.parse(req.url, true)
var key = adr.query.key
var callbackURL = adr.query.callbackURL
if (key == "key123") {
res.render('index', { resp: '', callbackURL: callbackURL })
} else {
res.render('error')
}
})
因此,如果键匹配,则呈现带有空响应和callbackURL的index.ejs。当用户尝试登录时,是否可以稍后在“ / submit”中传递该callbackURL? 提交代码:
app.post('/submit', function (req, res) {
request.post({
headers: { 'content-type': 'application/json' },
url: <here to use callbackURL>,// <-- here
body: { 'login': req.body.login, 'password': req.body.password },
json: true
},
function (request, response) {
if (response.statusCode == 200) {
res.render('index', { resp: 'login succesfull' })
} else {
res.render('index', { resp: 'invalid login or password' })
}
})
})
答案 0 :(得分:0)
它在另一个函数中,因此该变量不可用。
您需要以某种方式通过它。
您可以在呈现页面时将其传递给客户端(实际上您已经将其传递给render方法),然后将其放在表单的隐藏输入中,然后在您从表单数据中读取时提交端点被调用。
或者,您可以将其存储在一个会话中,但这会带来比赛条件的风险。