爲什麼路由不在這裏註冊?出於某種原因,我在訪問/ api/test時遇到404未找到。當我在當時的功能之外移動路線註冊時,它會起作用。這段代碼是從express生成的模板的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處理程序中調用_before_(因爲處理程序被定義的順序)。 – robertklep