Node / Express / Nunjucks: TypeError: Cannot use 'in' operator to search for 'x' in 'y'
Node / Express / Nunjucks: TypeError: Cannot use 'in' operator to search for 'x' in 'y'
我是 Nunjucks/Express 和 Node 世界的新手。
我有一个路由文件,它正在移植表单字段的输入值。我需要检查该值是否包含表达式 'gov'.
所以我创建了以下内容:
router.get('/test/output/', function (req, res) {
var emailAdress = req.session.data['accountEmail']
if ('gov' in emailAdress){
isCS = true
}
res.render('test/output.html',{
'email' : emailAdress,
.....等等...
这给了我以下错误:
TypeError: Cannot use 'in' operator to search for 'gov' in 'email@email.com'
我知道这与对象和数组有关 - 我只是找不到解决方案 - 我很欣赏它可能很简单。非常感谢任何帮助。
in
operator 仅适用于对象,不适用于字符串基元。
要在字符串中搜索,您可以使用 includes
:
emailAdress.includes('gov')
一个 ES5 兼容版本(在 includes
存在之前):
emailAdress.indexOf('gov') !== -1
或者您可以检查字符串是否以 'gov'
:
结尾
emailAdress.endsWith('gov')
我的代码最终看起来像这样:
router.get('/test/output/', function (req, res) {
var emailAddress = req.session.data['accountEmail']
var isCS = emailAddress.includes('gov');
res.render('test/output.html',{
'email' : emailAddress,
'cs' : isCS,
'layout' : '2-0',
'h1': 'Create an account',
...等等....
我是 Nunjucks/Express 和 Node 世界的新手。
我有一个路由文件,它正在移植表单字段的输入值。我需要检查该值是否包含表达式 'gov'.
所以我创建了以下内容:
router.get('/test/output/', function (req, res) {
var emailAdress = req.session.data['accountEmail']
if ('gov' in emailAdress){
isCS = true
}
res.render('test/output.html',{
'email' : emailAdress,
.....等等...
这给了我以下错误:
TypeError: Cannot use 'in' operator to search for 'gov' in 'email@email.com'
我知道这与对象和数组有关 - 我只是找不到解决方案 - 我很欣赏它可能很简单。非常感谢任何帮助。
in
operator 仅适用于对象,不适用于字符串基元。
要在字符串中搜索,您可以使用 includes
:
emailAdress.includes('gov')
一个 ES5 兼容版本(在 includes
存在之前):
emailAdress.indexOf('gov') !== -1
或者您可以检查字符串是否以 'gov'
:
emailAdress.endsWith('gov')
我的代码最终看起来像这样:
router.get('/test/output/', function (req, res) {
var emailAddress = req.session.data['accountEmail']
var isCS = emailAddress.includes('gov');
res.render('test/output.html',{
'email' : emailAddress,
'cs' : isCS,
'layout' : '2-0',
'h1': 'Create an account',
...等等....