尝试使用Postman、cosmosDB和NodeJs处理POST请求



我正在努力学习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进行数据输入。我正在使用data.id和data的newItemId制作一个假id。合作伙伴Id。有了这种方法,我可以在数据库中制作一个文档,也可以查看Postman,但Postman中的Body标签中什么都没有。我对此感到困惑,我觉得新文档的数据应该通过Postman Body传递,而不是我使用newItemId。这可能是一个愚蠢的问题,但我正在努力了解API是如何工作的,以及如何在其中传递数据。

ID在创建数据库资源时几乎总是在后端自动生成(或者至少应该是(,所以您所拥有的似乎是正确的。不过,我建议使用类似nanoid的库来生成id,只是为了消除潜在的错误。

返回创建的数据是RESTful约定,因此在这种情况下,您将在创建的文档上返回JSON,然后在前端重定向等(以确保后端前端的完全分离,因此您可以说单独托管它们(。你的方法也很好,而且有效。

我的建议是将您的后端和前端视为完全独立的,我个人会为每个项目制定一个项目。这更清楚了一切是如何联系在一起的。

相关内容

  • 没有找到相关文章

最新更新