【发布时间】:2018-01-24 01:47:47
【问题描述】:
我有一条路线,其中包含:groupIndex 的req.param。我想将此索引作为中间件处理以获得特定的 ID。
Node 和 express 对我来说是新的,所以我可能遗漏了一些简单的东西,但是阅读文档和查看其他实现似乎没有用。
知道我哪里可能出错了吗?
// routes.js
const express = require("express");
const router = express.Router();
const customMiddleware = ('./customMiddleware.js');
const db = require('./mysqlCon.js');
router.get('/person/:groupIndex(\\d+)', customMiddleware(), function (req, res) {
let id = req.params.id;
let query = `
SELECT
*
FROM
data
WHERE
id = ?
`;
let query_params = [id];
db.query(
query,
query_params,
function(error, result, fields) {
if ( result.length == 1 ) {
res.status(200).json( result[0] );
} else {
res.status(401).json({});
}
}
);
});
// customMiddleware.js
const db = require('./mysqlCon.js');
module.exports = (req, res, next) => {
let groupIndex = parseInt(req.params.groupIndex);
let query = `
SELECT
id
FROM
listofids
LIMIT 1
OFFSET ?
`;
let query_params = [groupIndex];
db.query(
query,
query_params,
function(error, result, fields) {
if ( result.length == 1 ) {
req.params.id = result[0].id;
} else {
res.status(401).json({});
}
}
);
next();
}
【问题讨论】:
标签: node.js express middleware