ルートがここに登録されていないのはなぜですか?何らかの理由で、/ api/testにアクセスすると404が見つかりません。ルート登録をその機能の外に移動すると機能します。このスニペットは、明示的に生成されたテンプレートからapp.jsに追加されます。Express JSルートがPromise内部で動作しない
var Q = require('q');
promisify().then(stringText => {
var route = express.Router();
route.get('/test', (req, res) => res.send('Hi'));
app.use('/api', route);
});
function promisify() {
var deferred = Q.defer();
deferred.resolve('Hello World');
return deferred.promise;
}
(あなたが外ルート登録を移動した場合)これは動作します:
var Q = require('q');
var route = express.Router();
route.get('/test', (req, res) => res.send('Hi'));
app.use('/api', route);
promisify().then(stringText => {
});
function promisify() {
var deferred = Q.defer();
deferred.resolve('Hello World');
return deferred.promise;
}
更新:階段からexpress
に入力して、フォルダの特急テンプレートを作成します
- を再現するためにコマンドライン。
- その後、パッケージ
npm install
をインストールします。 - また、q個のライブラリをインストールし、
npm install --save q
はちょうど他のルートを登録コードの下のコードを追加します。
app.use('/', index); app.use('/users', users); // Add the code above here
私の推測では、あなたが「catch-を残しているということですハンドルされていないリクエストを捕捉するためにインストールされたすべてのハンドラ。ハンドラが定義された順序のために、APIハンドラの前に_呼び出されます。 – robertklep