使用Express-Formidable时如何访问req.fields变量

时间:2017-10-23 15:34:24

标签: javascript express formidable

我在访问由Express-Formidable在req.fields中解析的变量时遇到问题。 如果我执行req.fields的console.log(),我会得到以下内容:

{ 'registration[username]': '1', 
'registration[password]': '11' }

但是,我无法专门访问用户名或密码字段。 我尝试过以下方法:

console.log(req.fields.registration.username)
console.log(req.fields.registration[username])
console.log(req.fields.registration['username'])
console.log(req.fields.username)

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

使用方括号([])键很难处理,但您仍然可以访问这些值,因为它们只是String的末尾。那一天。

您无法使用req.fields.keyName,但您可以使用方括号表示法req.fields[keyName]

两种方法:

方法A - 我们使用已知的密钥名称

// We don't expect this to change
const usernameKey = 'registration[username]'

// Now let's extract the value
const usernameValue = req.fields[usernameKey]

方法B - 提取密钥并使用它们

const listOfKeys = Object.keys(req.fields)

listOfKeys.forEach(key => {
  console.log(req.fields[key])
})

方法B区分每个值有点困难,但至少你能够提取它们。

祝你好运!