我有一个快速4节点应用程序,其中包含以下内容。
我的问题是app.get不要等到完成getAllFsRiver的演示并且什么也不返回。
怎么做?
app.js中的
var api1 = require('./routes/api1.js');
app.use(api1) ;
in route / api1.js
*jslint node: true */
'use strict';
var express = require('express');
module.exports = express();
var app = module.exports;
var esclient = require('../lib/esclient') ;
/* GET api vers 1 . */
app.get('/api/1/settings/rivers/fs*', function (req, res) {
var allriver = esclient.getAllFsRiver() ;
console.log("route");
res.json(allriver);
这里在esclient.getAllFsRiver完成执行之前调用res.json
答案 0 :(得分:1)
我的猜测是getAllFsRiver
是异步的,可能需要回调。您应该将回调传递给函数并在回调中处理响应。
esclient.getAllFsRiver(function (err, json) {
if (err) {
return res.status(500).end();
}
res.json(json);
});
答案 1 :(得分:0)
抱歉,我无法添加评论。您可以在问题中添加 getAllFsRiver 实施吗?也许是异步电话。
答案 2 :(得分:0)
你必须写下你的路线:
*jslint node: true */
'use strict';
var express = require('express');
var router = express.Router();
router.get('/api/1/settings/rivers/fs*', function (req, res) {
var allriver = esclient.getAllFsRiver() ;
console.log("route");
res.json(allriver);
/* ... */
})
module.exports = router;
在您编码的代码中,您从新的快递应用程序中导出错误的
答案 3 :(得分:0)
向main函数添加回调。的