node.js - 带有动态对象的路由?
问题描述
我有一条路线,定义了我的正方形(一个大区域)的大小,在那个正方形内,我有无数其他 1x1 比例的小正方形,也就是说,如果我的计算匹配,如果我的最大正方形是 50x50,我有 2500 个小正方形它们里面的正方形,它们都是一个应该有这个信息的对象:
{
"data": {
"x": 1,
"y": 2,
"painted": false
},
"error": false
}
那将是它们在我的大广场上的坐标,无论它们是否被绘制,当我提交这样的请求时,我应该有这个返回信息:
GET / squares /: x /: y
其中 x 和 y 是我选择的小方块的坐标
问题是 如何为我最大的广场的整个区域创建这个广场路线? 我的意思是,我的方块路线中的对象数量将取决于我当时定义的较大方块的大小......我如何以“动态”的方式创建路线并根据其他东西的价值创建对象?
那是我的代码:
那在我的bancoDeDados.js
function salvarTerritorie(territorie,area) { //Define o Id seguinte para o territorie ou utiliza um ID definido caso tenha
if (!territorie.id) territorie.id = sequence.id
territories[territorie.id] = territorie
var MATRIZ2 = [];
for (var i = 0; i < area; i++) {
MATRIZ2[i] = [];
for (var j = 0; j < area; j++) {
MATRIZ2[i][j] = ''
}
}
for (var L = 0; L < area; L++) {
for (var C = 0; C < area; C++) {
MATRIZ2[L][C] = C+1
}
}
return territorie
}
这就是我的servidor.js
function getSquares(x,y) {
return territories.MATRIZ2[0][0]
}
//-
app.get('/squares/:x/:y',(req, res, next) => {
// console.log(req.params.x, req.params.y)
const {x, y} = req.params
res.send(bancoDeDados.getSquares(x, y))
})
编辑 现在我需要使用这条路线更新我的绘制属性:
PATCH /squares/:x/:y/paint
那应该返回我:
{
"data": {
"x": 1,
"y": 2,
"painted": true
},
"error": false
}
直到现在,我都在这样做
function patchSquare(x, y) {
const stringQuadrado = JSON.stringify(territories.matriz)
const dadosQuadrado = JSON.parse(stringQuadrado)
dadosQuadrado[x][y].data.painted = true
return dadosQuadrado[x][y]
}
它返回我的权利,但它没有更新,因为在我的路线中
GET /squares/:x/:y
继续让我画:假,我需要 patchSquare 来实际更新,这样即使这个 get 路由也可以获取更新的属性
解决方案
如果您正在使用express
(这只是一个假设),那么:
app.get('/squares/:x/:y', function (req, res) {
// console.log(req.params.x, req.params.y)
const {x, y} = req.params
res.send(yourBigSquare[x][y])
})
推荐阅读
- python - 使用 matlab 打开 .ply 网格文件(或在 python 中转换为可读格式)
- ios - PFSignUpViewController、AutoFill -- 无法显示自动强密码
- c# - 与 Office 插件一起分发 Microsoft.Office.Tools Dll
- ios - 试图从另一个类中删除子视图
- codeigniter - 在 codeigniter 中查询 WHERE “LESS THAN 1” AND “NOT NULL” 结果无
- python - 如何获得准周期序列中的最小值?
- asp.net-core-2.1 - 在 asp.net core 2.1 中有任何方法可以在用户注销时清除会话状态
- python-3.x - 如何将用户连接到语音通道?
- python-3.x - 根据另一个数据框替换数据框中的值
- angularjs - handsontable:全局搜索过滤器行为