尝试使用 Postman、cosmosDB 和 NodeJs 处理 POST 请求
Trying to work with POST request using Postman, cosmosDB and NodeJs
我正在努力学习API的工作方式。在这里,我试图让 POST 方法起作用。我正在使用这段代码在数据库中制作文档,
app.post('/add', async (req, res) => {
try {
const data = require('./test.json');
const newItemId = Math.floor(Math.random() * 1000 + 10).toString();
data.id = newItemId;
data.Partnership_Id = newItemId;
//for testing purpose only
let documentDefinition = {
"id": newItemId,
"name": "Angus MacGyver",
"state": "Building stuff"
};
// Open a reference to the database
const dbResponse = await cosmosClient.databases.createIfNotExists({
id: databaseId
});
let database = dbResponse.database;
const { container } = await database.containers.createIfNotExists({id: containerId});
// Add a new item to the container
console.log("** Create item **");
const createResponse = await container.items.create(data);
res.redirect('/');
} catch (error) {
console.log(error);
res.status(500).send("Error with database query: " + error.body);
}
})
这里我使用test.json作为数据输入。我正在使用 newItemId 为 data.id 和 data.Partnership_Id 制作假 ID。
通过这种方法,我可以在数据库中创建一个文档,也可以检查 Postman,但是 Postman 的 Body 标签中没有任何内容。
我对这部分感到困惑,我觉得新文档的数据应该通过 Postman Body 传递,而不是我使用 newItemId 传递给它。
这可能是一个愚蠢的问题,但我正在努力了解 API 的工作原理以及如何在其中传递数据。
创建数据库资源时,ID 几乎总是在后端自动生成(或至少应该是),因此您所拥有的似乎是正确的。我建议使用像 nanoid 这样的库来生成 ID,只是为了消除潜在的错误。
它是 RESTful 对 return 创建数据的约定,因此在这种情况下,您将 return 在创建的文档上 JSON,然后在前端(以确保后端前端完全分离 - 所以你可以说分别托管它们)。你的方法也很好,但也很有效。
我的建议是将您的后端和前端视为完全独立的,我个人会为每个项目准备一个项目。这样就更清楚了一切是如何联系在一起的。
我正在努力学习API的工作方式。在这里,我试图让 POST 方法起作用。我正在使用这段代码在数据库中制作文档,
app.post('/add', async (req, res) => {
try {
const data = require('./test.json');
const newItemId = Math.floor(Math.random() * 1000 + 10).toString();
data.id = newItemId;
data.Partnership_Id = newItemId;
//for testing purpose only
let documentDefinition = {
"id": newItemId,
"name": "Angus MacGyver",
"state": "Building stuff"
};
// Open a reference to the database
const dbResponse = await cosmosClient.databases.createIfNotExists({
id: databaseId
});
let database = dbResponse.database;
const { container } = await database.containers.createIfNotExists({id: containerId});
// Add a new item to the container
console.log("** Create item **");
const createResponse = await container.items.create(data);
res.redirect('/');
} catch (error) {
console.log(error);
res.status(500).send("Error with database query: " + error.body);
}
})
这里我使用test.json作为数据输入。我正在使用 newItemId 为 data.id 和 data.Partnership_Id 制作假 ID。 通过这种方法,我可以在数据库中创建一个文档,也可以检查 Postman,但是 Postman 的 Body 标签中没有任何内容。 我对这部分感到困惑,我觉得新文档的数据应该通过 Postman Body 传递,而不是我使用 newItemId 传递给它。 这可能是一个愚蠢的问题,但我正在努力了解 API 的工作原理以及如何在其中传递数据。
创建数据库资源时,ID 几乎总是在后端自动生成(或至少应该是),因此您所拥有的似乎是正确的。我建议使用像 nanoid 这样的库来生成 ID,只是为了消除潜在的错误。
它是 RESTful 对 return 创建数据的约定,因此在这种情况下,您将 return 在创建的文档上 JSON,然后在前端(以确保后端前端完全分离 - 所以你可以说分别托管它们)。你的方法也很好,但也很有效。
我的建议是将您的后端和前端视为完全独立的,我个人会为每个项目准备一个项目。这样就更清楚了一切是如何联系在一起的。