0
我在我的路由器上有一個回調函數,並且運行良好,但就像我想要的不重複我的回調函數來管理一個函數中的sql錯誤,然後我移動到外部文件回調函數移動到外部js,不起作用
動我的回調函數到外部文件之前:
var express = require('express');
var router = express.Router();
var model= require('../models/customers');
router.get('/', function (req, res, next) {
res.header('content-type', 'application/json');
console.log('will do model.get');
model.get(function (err, rows) {
if (err) {
res.status(500).send({error: 'Something failed!'})
} else {
res.json({data: rows});
}
});
});
當有錯誤是正常的反應:
{
"error": "Something failed!"
}
後,我搬到通話回功能到外部文件:
./lib/dbfunctions
var dbfunctions = {
runSql: function (err, rows) {
if (err) {
res.status(500).send({error: 'Something failed!'})
}
else {
res.json({data: rows});
}
}
}
module.exports = dbfunctions ;
,然後我在文件中導出此函數
路由器JS:
var express = require('express');
var router = express.Router();
var model= require('../models/customers');
var dbfunctions = require('../libs/dbfunctions');
router.get('/:id?', function (req, res, next) {
res.header('content-type', 'application/json');
if (req.params.id) {
model.getById(req.params.id, function (err, rows) {
if (err) {
res.json(err);
}
else {
res.json({data:rows});
}
});
}
else {
console.log('will do model.get');
model.get(dbfunctions.runSql);
}
});
但現在的代碼我沒有工作我得到
ReferenceError: res is not defined
有人可以解釋我做錯了什麼?
感謝工作! – stackdave