У меня возникла проблема с кодом запроса express и sql. Я не могу получить значение results
запроса sql ниже, но это работает при регистрации results
. Я уже возвратил results
.Получите результаты обратного вызова (Nodejs)
Вот мой код sql.js
var dataContext = require('node2sql')({
username: 'user',
password: 'password',
server: '1xx.xx2.xx.xx9',
options: {
database: 'grades'
}
});
module.exports = {
DataQuery: function(query) {
query = query.replace(/\s+/g, '').split("/");
year = query[2].substr(2, 4);
id = query[0];
period = query[1].toUpperCase();
if (period == 'SEM1') {
period = "1st Semester";
} else if (period == "SEM2") {
period = "2nd Semester";
}else if (period == 'SUM') {
period = "Summer";
}
var queryStr = "SELECT SubjectCode,Grade FROM dbo.grade_list_" + year + " WHERE StudentNo=\'" + id + "\' and Semester=\'" + period + "\'";
console.log(queryStr);
dataContext.query(queryStr, function(err, results) {
console.log(results)
return results;
});
}
}
Вот моя страница индекса, как вы можете видеть, что я хотел, чтобы получить возвращаемое значение data
и показать его на моей странице индекса (только тест).
var express = require('express');
var sql = require('../libs/sql');
var router = express.Router();
router.get('/', function(req, res, next) {
var data = sql.DataQuery("01-666-123/sem2/2009")
res.end(data);
});
module.exports = router;
Я принимаю любые ваши предложения, ребята. Я уже прочитал этот question, который был задан раньше, но все же я не могу понять, как это сделать. Спасибо
Я не могу не заметить, что ваш 'DataQuery' функция принимает' fn', но ничего не делает с этим. Похоже, это может быть частью решения. –
Я этого не заметил. Все еще не работает. Я отредактирую код выше. Спасибо – user3012847
Вам необходимо передать эту функцию обратного вызова ... Проверьте ответ ниже ... –