为什么路由不在这里注册?出于某种原因,我在访问/ 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