これまでにこれを行う必要はありませんでした。 myModule.GetRecord()
を作成しましたが、recordset
が正常に記録されていることがわかります。 ret
のrouter.get()
はundefined
です。node.js関数を使用して値を返すカスタムモジュールを作成する
私はコールバックで返された値をキャッチする必要があるので、私は信じています。
私はこのモジュール/関数をコールバックのために定義する方法(私が適切に探しているものであれば)、またはこの関数をコールバックのために呼び出す方法を知らない。
私はいくつかの異なるもの、すなわち典型的なものを試しましたGetRecord(ret, function() { ... });
しかし、動作するように見えなかったものは見えませんでした。そして私はラインで束を読むが、私が探していると思っているものは見つけられなかった。
、しかしは私が本当にやろうとしているすべてのmm.GetRecord()
年代はrouter.get()
にいくつかの使用可能な形で値を返さ持っています - - myModulefile.js ---
'use strict';
module.exports = {
GetRecord: function (id) {
var sql = require('mssql');
sql.connect({ user: 'sa', ... database: 'name' }, function (err) {
if (err) { console.log(err); return null; }
var cmd = new sql.Request();
cmd.query('select * from Records where id = ' + id, function (err, rs) {
if (err) { console.log(err); return null; }
if (rs.recordset.length > 0) {
console.log('rs[0]', rs.recordset[0]);
return rs.recordset[0];
} else {
return null;
}
});
});
}
};
--- myRouter.js ----
const express = require('express');
const router = express.Router();
const mm = require('../myModule');
router.get('/:id', function (req, res) {
var id = req.params.id;
var ret = mm.GetRecord(id)
console.log('ret', ret);
if (ret == null)
ret = JSON.stringify({ ID: -1, f1: 'unknown' });
res.send(ret);
});
module.exports = router;