我想從這個異步函數exports.getServices得到一個返回值。但我沒有得到任何回報。如何從Node.js中的異步函數獲取返回值?
var http = require("http");
var mysql = require('mysql');
var url = require("url");
var connection = mysql.createConnection({
...
});
connection.connect();
exports.getServices = function(){
connection.query('SELECT DISTINCT SERVICE FROM booking_count', function(err, rows, fields) {
if (err) throw err;
var services = new Array();
for (var i in rows) {
services[i] = rows[i].SERVICE;
}
return services;
});
}
我從另一個模塊訪問這個方法:
var express = require('express');
var hbs = require('express3-handlebars');
var app = express();
app.engine('html', hbs({defaultLayout: 'layout'}));
app.set('view engine', 'html');
app.set('views', __dirname + '\\views');
app.use(express.bodyParser());
var mysql = require('./mysql');
app.get('/', function(req, res) {
res.render('index',{title:"Services", services:mysql.getServices()});
});
app.get('/article/:id', function(req, res) {
var entry = blogEngine.getBlogEntry(req.params.id);
res.render('article',{title:entry.title, blog:entry});
});
app.listen(3000);
這將是非常有益的,如果你能發佈更正後的代碼。非常感謝您提前!
非常感謝。你可以發佈如何作爲回調方法「下一個」傳遞的函數應該是什麼樣子?還有我在另一個模塊中調用的方法? – user3494729