のない私は、他のアプリは新しいデータを挿入(作成)できるようにするAPIを作成したいです。しかし、これまで私が試したのは、「ユーザーIDが必要です」というエラーメッセージが表示されず、新しいデータを挿入するときにログインユーザーが見つからないためです。パスワードなしで新しいデータを挿入することは可能ですか?アカウントのパスワードパッケージを使用している場合や、この作業を可能にする方法があれば、サーバー側からログインする方法はありますか?サーバー上の流星サーバーの挿入データのログイン
コード
Picker.route('/createFood/:title', function(params, req, res, next) {
console.log('-> params : ',params);
let username = (new Date()).getTime().toString();
function createFood() {
Fiber(function() {
console.log("-> username : ",username);
let acc = Accounts.createUser({
username: username,
email: username +'@foodie.com',
password: username
});
if (acc) {
console.log("-> acc : ",acc);
// Meteor.call("setUserId", acc);
Menus.insert({
title: params.title,
}, function(err, foodId) {
console.log("-> abs : ",Meteor.absoluteUrl());
console.log("-> err : ",err.message);
console.log("-> foodId : ",foodId);
let code, result;
if (err) {
code = 500;
result = {
error: err.message
}
} else {
code = 200;
result = {
foodId: foodId,
}
}
res.setHeader('Content-Type', 'application/json');
res.statusCode = code;
res.end(JSON.stringify(result));
})
}
}).run();
}
if (params.title)
createFood();
});
コード食べ物モデルは、ここで
if (Meteor.isServer) {
Menus.allow({
insert: function() {
return true;
},
update: function() {
return true;
},
remove: function() {
return true;
},
fetch: ['foodId'],
});
Menus.after.insert((userId, doc) => {
....
})
}
ちょっと私は同じ問題にしています、解決策はありますか? – Gobliins
@Gobliins実は私の問題は、(?:「ゴーストユーザー」 ''はuserId userIdを同じように、そのスキーマファイルに条件を使用している場合はユーザーのログイン名と私の一時的な解決策は、その時点で存在しない場合、この値はnullになります)自動入力値のuserIdに位置しています。おそらく、isInsertまたはisSetのときに、userIdがautoValueまたは必須フィールドとして使用されていないことを確認することができます。この役立つことを願っています。 –
それでは、私の問題は少し違っていました。 UserId(Meteor製)が定義されていなかったCollectionHooksから来ました。 – Gobliins