throw new Meteor.Error
을 사용하는 서버 방법에서 오류가 발생했습니다.서버 측에서 오류를 throw하고 클라이언트 측에서 캐치하는 방법은 무엇입니까?
클라이언트가 응답을받지 못하고 콜백의 error
인수는 항상 undefined
이지만 터미널에서는 throws
오류가 발생하고 유성이 다시 시작됩니다.
W20170413-17:27:28.900(1)? (STDERR) /home/xeconcepts/.meteor/packages/meteor-tool/.1.4.2-1-beta.1.si3hb0++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:280 W20170413-17:27:28.900(1)? (STDERR) throw(ex); W20170413-17:27:28.900(1)? (STDERR) ^ W20170413-17:27:29.175(1)? (STDERR) Error: carte existe [204] W20170413-17:27:29.175(1)? (STDERR) at imports/api/users/methods.js:211:47
와 스트라이프 methods
또는
const Stripe = require('stripe');
const stripe = Stripe("sk_test_pO*******MUDXjlF8v");
는
if(Meteor.isServer)
방법 코드 :
export const addCCStudent = new ValidatedMethod({
name: 'addCCStudent',
validate: new SimpleSchema({
id: {
type: String
},
number: {
type: String
},
dateMM: {
type: String
},
dateYYYY: {
type: String
},
cvc: {
type: String
}
}).validator(),
run(p) {
try {
if (Meteor.isServer) {
const Fiber = require('fibers');
const Stripe = require('stripe');
const stripe = Stripe("*************");
stripe.tokens.create({
card: {
"number": p.number,
"exp_month": p.dateMM,
"exp_year": p.dateYYYY,
"cvc": p.cvc
}
}, function(err, token) {
console.log("tokenserr", err);
console.log("token", token);
if (!err) {
Fiber(function() {
// console.log("p", p)
var user = Meteor.users.findOne({
_id: p.id
});
//console.log("addCCStudentuser", user);
if (user) {
var cCArray = user.profile.UserCards;
if (cCArray) {
var exist = false;
for (var i = 0; i < cCArray.length; i++) {
if ((cCArray[i].number == p.number) && (cCArray[i].dateMM == p.dateMM) && (cCArray[i].dateYYYY == p.dateYYYY)) {
exist = true
}
}
if (exist) {
throw new Meteor.Error(204, "carte existe");
} else {
Meteor.users.update({
_id: p.id,
}, {
$push: {
'profile.UserCards': { number: p.number, dateMM: p.dateMM, dateYYYY: p.dateYYYY }
}
});
}
}
}
}).run();
} else {
// console.log("errerrerrerr", err.raw.message);
throw new Meteor.Error(204, err.raw.message);
}
});
}
} catch (error) {
console.log("error", error)
throw new Meteor.Error(203, error.reason);
}
},
});
전체 코드를 볼 수 있습니까? 어떻게 당신이 오류 thouding입니까 – Ethaan
코드를 게시하지 않으면 도움이 될 수 없습니다 – Sean
https://pastebin.com/G0m1kDAq –