2015-08-22 2 views
0

Я пытаюсь отправить электронную почту с узлом js, все работает, но когда я устанавливаю информацию из своей БД, объект не получает их.поведение узла js weird

var mailOptions = { 
    from: template.from, // sender address 
    to: userInfo.email, // list of receivers 
    subject: template.subject, // Subject line 
    html: template.html// html body 
}; 

return callback(mailOptions + ' || ' + template); 

mailOptions дает мне объект лишь 2 значений, в то время как объект из БД прекрасно:

{"to":"[email protected]","subject":"Thanks for sign in!"} || { _id: 55d874aef31ff001a6a0a877, 
name: 'register_welcome', 
subject: 'Thanks for sign in!', 
from: '[email protected]', 
html: '<html><body><h1>Thanks |username|.</h1><br/><br/><h2>Please <a href=\'#\'>Click here</a>.</h2></body></html>' 

Но тогда я пытаюсь сделать это, на том же объекте:

return callback(mailOptions); 

И я получаю:

{"to":"[email protected]","subject":"Thanks for sign in!"} 

любая идея, что не так? все, что я делаю, это установка данных из БД в объект, но похоже, что объект не получает всю информацию, так как я уверен, что объект template имеет эти значения!

EDIT:

Я попытался изменить значения в БД, чтобы проверить, если что-то не так со значениями, но все же результат!

{"to":"[email protected]","subject":"Thanks for sign in!"} || { _id: 55d874aef31ff001a6a0a877, 
name: 'register_welcome', 
subject: 'Thanks for sign in!', 
from: 'test', 
html: 'test' } 

ТАКЖЕ попытался изменить название полей в моей БД, но все равно дает мне тот же результат.

{"to":"[email protected]","subject":"Thanks for sign in!"} || { _id: 55d874aef31ff001a6a0a877, 
name: 'register_welcome', 
subject: 'Thanks for sign in!', 
send_html: 'test', 
send_from: 'test' } 
+3

'[object Object]' не обязательно пустой объект. это строковое представление каждого объекта. –

+0

Да, я знаю, но на этот раз. [], что я получаю –

+0

Как вы получаете это –

ответ

0

Итак, я был глуп, моя схема была неправильной, только 2 значения были правильными, потому что я изменил имена на поля, я забыл изменить схему.

Не забудьте изменить схему, если вы измените название поля !!!

1
var mailOptions = { 
    from: template.from, // sender address 
    to: userInfo.email, // list of receivers 
    subject: template.subject, // Subject line 
    html: template.html// html body 
}; 

return callback(mailOptions); 

Вы конвертируете объект в строку.

+0

попробовал 'JSON.stringify (mailOptions)' тот же результат, почему он показывает только 2 значения? а не 4? функция использует его как объект и его все еще не работает. обратный вызов предназначен только для отладки. –