单个 API 是否有可能在 Node JS 中处理多个请求?
Is it possible a single API handles multiple requests in Node JS?
我的目标是创建一个 API 来处理多个请求。通过这样做,我需要像这样将一个字符串作为 argument
传递给 url of API
:
// index.js in client
fetch(`http://localhost:4000/routerName/${tableName}`).then()
// router.js
router.get(`/${tableName_from_client_page}`, (req, res) => { // Do Something })
问题是,浏览器无法连接到目标页面,除非我为每个匹配的 tableNames
.
创建一个全新的 APIs
我希望我的 API 通过接收 tableName
作为其 /url
来处理多个请求。
有什么技巧可以解决这个问题吗?
这是我的整个路由器的样子:
// Router
const express = require('express'),
db = require('./db.js'),
router = express.Router();
router.get('/table', (req, res) => {
db.loadTable('SELECT * FROM someTable', res);
}) // Handles only one request on the name of url; /table
router.get(`/${tableName_from_client_page}`, (req, res) => {
db.loadTable(`SELECT * FROM ${tableName_from_client_page}`, res)
}) // Handles multiple requests, depending on its argument.
module.exports = router;
// Router
const express = require('express'),
db = require('./db.js'),
router = express.Router();
router.get('/table', (req, res) => {
db.loadTable('SELECT * FROM someTable', res);
}) // Handles only one request on the name of url; /table
router.get('/tables/:tableName', (req, res) => {
db.loadTable(`SELECT * FROM ${req.params.tableName}`, res)
}) // Handles multiple requests, depending on its argument.
module.exports = router;
// Router
const express = require('express'),
db = require('./db.js'),
router = express.Router();
这个API只会处理一个请求“/table”。
router.get('/table', (req, res) => {
db.loadTable('SELECT * FROM someTable', res);
})
要处理多个请求,请查看下面的代码
但要确保write this API last in the route file
,如果你在“/table”API之前写这个API那么你的"/table" request
也会被这个[=19处理=].
router.get('/:table_name', (req, res) => {
db.loadTable(`SELECT * FROM ${req.params.table_name}`, res)
})
module.exports = router;
我的目标是创建一个 API 来处理多个请求。通过这样做,我需要像这样将一个字符串作为 argument
传递给 url of API
:
// index.js in client
fetch(`http://localhost:4000/routerName/${tableName}`).then()
// router.js
router.get(`/${tableName_from_client_page}`, (req, res) => { // Do Something })
问题是,浏览器无法连接到目标页面,除非我为每个匹配的 tableNames
.
我希望我的 API 通过接收 tableName
作为其 /url
来处理多个请求。
有什么技巧可以解决这个问题吗?
这是我的整个路由器的样子:
// Router
const express = require('express'),
db = require('./db.js'),
router = express.Router();
router.get('/table', (req, res) => {
db.loadTable('SELECT * FROM someTable', res);
}) // Handles only one request on the name of url; /table
router.get(`/${tableName_from_client_page}`, (req, res) => {
db.loadTable(`SELECT * FROM ${tableName_from_client_page}`, res)
}) // Handles multiple requests, depending on its argument.
module.exports = router;
// Router
const express = require('express'),
db = require('./db.js'),
router = express.Router();
router.get('/table', (req, res) => {
db.loadTable('SELECT * FROM someTable', res);
}) // Handles only one request on the name of url; /table
router.get('/tables/:tableName', (req, res) => {
db.loadTable(`SELECT * FROM ${req.params.tableName}`, res)
}) // Handles multiple requests, depending on its argument.
module.exports = router;
// Router
const express = require('express'),
db = require('./db.js'),
router = express.Router();
这个API只会处理一个请求“/table”。
router.get('/table', (req, res) => {
db.loadTable('SELECT * FROM someTable', res);
})
要处理多个请求,请查看下面的代码
但要确保write this API last in the route file
,如果你在“/table”API之前写这个API那么你的"/table" request
也会被这个[=19处理=].
router.get('/:table_name', (req, res) => {
db.loadTable(`SELECT * FROM ${req.params.table_name}`, res)
})
module.exports = router;