当我向 api 服务器发出 post 请求时收到 404 错误
receiving a 404 error when I make a post request to api server
我为我的 api 服务器创建了一个自定义端点,它删除了一个听力测试:
Account.deleteSingleHearingTest = function (req, callback) {
// console.log('accounts.js: deleteSingleHearingTest: are we being reached????', req)
Account.findById(req.accessToken.userId)
.then(account => {
if (!account) {
throw new Error('Cannot find user');
}
console.log('account.js: deleteSingleHearingTest: req.body.hearingTestId N: ', req.body.hearingTestId);
return app.models.HearingTest.updateAll({ accountId: account.id, id: req.body.hearingTestId }, { isDeleted: new Date() });
})
.then(() => {
callback(null);
})
.catch(error => {
callback(error);
});
}
Account.remoteMethod(
'deleteSingleHearingTest', {
http: {
path: '/deleteSingleHearingTest',
verb: 'post'
},
accepts: [
{ arg: 'req', type: 'object', description: 'removes a single hearing test', http: { source: 'req' } }
],
description: 'this is the end point for a single delete',
returns: {}
}
);
我还在 account.json 中更新了 acls:
{
"accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW",
"property": "deleteSingleHearingTest"
}
使用 Postman,我向服务器地址发出了 POST 请求,如下所示:
https://xxx.xxxxxxxx.com/api/Accounts/deleteSingleHearingTest?access_token=XXXXXXXXXXXXXXXXXKyBdxkwxm5s8TSceMgclvXjjrTnyn3UJWIa
我在 Postman 上得到的回复是 404 并附有消息
"Shared class \"Account\" 没有方法处理 POST /deleteSingleHearingTest?access_token=XXXXXXXXXXXXXXXXXXqAoKyBdxkwxm5s8TSceMgclvXjjrTnyn3UJWIa",
奇怪的是,两周前我第一次创建的时候这个方法是有效的,唯一不同的是我是运行本地服务器。
我需要重新启动服务器,以便引入新方法。对于真正阅读本文的 1 人。要重新启动服务器,命令是 pm2 start all
我为我的 api 服务器创建了一个自定义端点,它删除了一个听力测试:
Account.deleteSingleHearingTest = function (req, callback) {
// console.log('accounts.js: deleteSingleHearingTest: are we being reached????', req)
Account.findById(req.accessToken.userId)
.then(account => {
if (!account) {
throw new Error('Cannot find user');
}
console.log('account.js: deleteSingleHearingTest: req.body.hearingTestId N: ', req.body.hearingTestId);
return app.models.HearingTest.updateAll({ accountId: account.id, id: req.body.hearingTestId }, { isDeleted: new Date() });
})
.then(() => {
callback(null);
})
.catch(error => {
callback(error);
});
}
Account.remoteMethod(
'deleteSingleHearingTest', {
http: {
path: '/deleteSingleHearingTest',
verb: 'post'
},
accepts: [
{ arg: 'req', type: 'object', description: 'removes a single hearing test', http: { source: 'req' } }
],
description: 'this is the end point for a single delete',
returns: {}
}
);
我还在 account.json 中更新了 acls:
{
"accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW",
"property": "deleteSingleHearingTest"
}
使用 Postman,我向服务器地址发出了 POST 请求,如下所示:
https://xxx.xxxxxxxx.com/api/Accounts/deleteSingleHearingTest?access_token=XXXXXXXXXXXXXXXXXKyBdxkwxm5s8TSceMgclvXjjrTnyn3UJWIa
我在 Postman 上得到的回复是 404 并附有消息
"Shared class \"Account\" 没有方法处理 POST /deleteSingleHearingTest?access_token=XXXXXXXXXXXXXXXXXXqAoKyBdxkwxm5s8TSceMgclvXjjrTnyn3UJWIa",
奇怪的是,两周前我第一次创建的时候这个方法是有效的,唯一不同的是我是运行本地服务器。
我需要重新启动服务器,以便引入新方法。对于真正阅读本文的 1 人。要重新启动服务器,命令是 pm2 start all