0
"/ [ルート]をPOSTできません" 私は、これらのメソッドがあります:のNode.jsは<code>util/index.js</code>で
'use strict';
const parser = require('body-parser');
const express = require('express');
const app = express();
const RtmClient = require('@slack/client').RtmClient;
const RTM_EVENTS = require('@slack/client').RTM_EVENTS;
const db = require('../db').db;
const rtm = new RtmClient(process.env.SLACK_API_TOKEN);
app.use(parser.urlencoded({extended: true}));
rtm.start();
let POST = (url, handler) => {
app.post(url, (req, res) => {
handler(req)
.then(data => {
res.status(200).send(data);
})
.catch(error => {
res.status(500).send('Error: ' + error.message || error);
});
});
};
let setStatus = url => {
POST(url, req => db.users.insert({
username: req.body.user_name,
userid: req.body.user_id,
status: url.toUpperCase()
}));
};
module.exports = {
POST,
setStatus
};
をそして、私のproject/index.js
に、私はこのようにそれらを呼び出す:
'use strict';
const port = process.env.PORT || 3000;
const db = require('./db').db;
const express = require('express');
const app = express();
const u = require('./util');
u.POST('/logdash',() => db.users.select());
u.setStatus('here');
u.setStatus('out');
u.setStatus('break');
u.setStatus('left');
u.setStatus('sick');
u.setStatus('hungry');
app.listen(port,() => {
console.log('Server is now running on port ' + port);
});
しかし、その後、私は取得します
Cannot POST /[route]
。これはSlackアプリケーションで、2つのメソッドを別のファイルに転送する前に、うまく機能していました。私はNode.jsをまだよく理解していません。これは私が初めて作ったアプリですから。私はPHPのような言語をプログラミングするのに慣れていますが、別のファイルへのメソッド分離のために同じ従来の方法を実行することで、このエラーが発生します。
ルートにアクセスしてデータベース操作が完了したときにチャネルにメッセージを表示するため、別のファイルから要求するときに別の処理を行う必要があるため、POST
メソッドに問題があると思います。
あなたは2つの異なる 'app'を(2つのモジュールで)持っていて、あなたはそれらのうちの1つだけを起動しています。 – SLaks
あなたは 'app.listen'を意味していますか? – mfgabriel92
さて、私は理解しています。私は 'app'をエクスポートし、' u.app.listen'を使用しました。このように '/ logdash'コマンドは機能しましたが、他のコマンドは同じエラーを表示します。 – mfgabriel92