我试图从函数中访问数据,我认为它是一个数组,所以我创建了JSON.parse()
以便将数组对象拆分为var对象,但它似乎不是真正的阵列,所以我不知道它是什么。
这是代码:
app.post('/', function(request, response)
{
console.log('POST OK');
mongoose.connect('mongodb://localhost');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback()
{
database.findByName(request.body.username.toLowerCase(), function(error, data)
{
if(error)
{
response.render('index',
{
'Title': Title,
'result': 'Error, please try again later.'
});
}
if(data.length > 0)
{
console.log(JSON.stringify(data));
if(request.body.username == data.username && request.body.password == data.password)
{
response.render('index',
{
'Title': Title,
'result': 'Log in success.'
});
}
else
{
response.render('index',
{
'Title': Title,
'result': 'username/password invalid.'
});
}
}
response.render('index',
{
'Title': Title,
'result': 'Not found'
});
});
});
});
其中一个if
语句无效,因为data.object()
未定义,因此我创建了数据日志,我得到了:
[{"username":"maggns","password":"22542214","other data"}]
JSON.parse不能正常工作,它会抛出一个错误。知道如何解析这些数据吗?
答案 0 :(得分:1)
它的格式错误的JSON,你无法解析它(缺少使用正则表达式或其他东西的hacky路线)。假设您已经控制了数据,那么您应该先查看在将其放入mongodb之前如何生成该字符串。
答案 1 :(得分:0)
看起来数据是一个数组,所以你应该使用:
if(request.body.username == data[0].username && request.body.password == data[0].password) {
// response
}