私はNode.js/Express.jsプロジェクトを持っています。2番目の呼び出しでvCard.jsが関数にならない
私が持っている三つのないエンドポイント: 1)それはの.vcfファイルを生成するvCard.jsを使用し 2)電子メール受信者、それはとして受信者を追加するの.vcfファイル 3)へのリンクユーザープロファイルへの連絡
何らかの理由で、私がこのエンドポイントを最初に呼び出すと、それはすべてうまく処理されます。しかしそれ以降の呼び出しでは、vCardが関数ではないというエラーが生成されます。
以下はExpressエンドポイントの簡略化されたバージョンです。私は基本的に関数に渡される変数をインスタンス化するコードのブロックを取り除きました。
私は誰かが問題の原因となっている可能性のあるフロー内の何かを見ることができると考えています。
私はコード全体を投稿することができますが、私は人が見ることが少し面倒かもしれないと思って、これを最初に試してみると思いました。
ここでは、エンドポイントの:
var express = require('express');
var router = express.Router();
var Card = require('../models/cards');
var Hold = require('../models/hold');
var Profile = require('../models/profile');
var vCard = require('vcards-js');
var GuidGen = require('./helpers/generate_guid');
var sendmail = require('./helpers/post_office');
var constants = require('./helpers/constants');
router.route('/invite')
.put(function(req, res){
vCard = vCard();
//VARIABLES PASSED TO VCARD HERE
// REMOVED FIELDS FOR VCARD FOR SIMPLICITY. HERE IS AN EXAMPLE OF A FIELD: vCard.[FIELD] = req.body.[PARAM];
//FIRST ACTION: SAVE VCARD
vCard.saveToFile('./vcards/' + req.body.invited_first_name + req.body.invited_last_name + req.body.owner_id + '.vcf');
//SECOND ACTION: SEND EMAIL WITH VCARD
//FOLLOWING ACTION PASSES THE ABOVE PARAMS AND SENDS EMAIL VIA HELPER
sendmail.mailsend(emailSender, emailRecipient, emailSubject, emailBody);
//THIRD ACTION: SAVE CONTACT TO USER PROFILE
Profile.findOne({'contacts.emails.email_address':req.body.invited_email}, function(err, profile){
if(err)
console.log('Error in looking for profile.');
if(profile){
//I REMOVED THE CODE BLOCK THAT SETS UP SAVING THE PROFILE FOR SIMPLICITY
profile.save(function(err){
if(err)
res.send(err);
res.json(profile);
});
} else {
//REMOVED CODE FOR SETTING UP UPDATING CONTACTS FOR SIMPLICITY
var contacts = {
//CODE FOR CONTATACTS REMOVED FOR SIMPLICITY
};
Profile.findOneAndUpdate({
owner_id: req.body.owner_id
}, {
$push: {
contacts: contacts
}
}, {
new: true
}, (err, profile) => {
if (err) {
return res.send(err);
}
return res.json(profile);
});
}
})
})
module.exports = router;
ありがとう、Wilson! – cnak2