【发布时间】:2020-12-15 18:59:18
【问题描述】:
我有一条路线来定义我的方格(一个大区域)的大小,在那个方格内我还有无数其他 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 合作?
-
cape_bsas 是的,我是
-
那么下面的答案应该适合你
标签: node.js routes nodes nested-routes