我仍在学习JSON GET和POST,并且正在使用Insomnia Designer作为我的开发工具。
这是我的代码:
var ingredients = [
{
"id": "232323",
"text": "Eggs"
},
{
"id": "121212",
"text": "Milk"
},
{
"id": "45464",
"text": "Bacon"
},
{
"id": "67686",
"text": "Onion"
}
];
app.post('/', function (request, response) {
var ingredients = request.body;
if (!ingredients || ingredients.text == "") {
response.status(500).send({error: "Your ingredient must have a text"});
} else {
ingredients.push(ingredients);
response.status(200).send(ingredients);
}
});
当我尝试执行代码时,它在第'ingredients.push(ingredients);'
行显示了错误
我的代码有什么问题吗?
答案 0 :(得分:1)
request.body可以是一个对象。您需要这样指定。
var ingredients = request.body.ingredients;
尝试一下:
app.post('/', function (request, response) {
var ingredients = request.body.ingredients;
if (!ingredients || ingredients.text == "") {
response.status(500).send({error: "Your ingredient must have a text"});
} else {
ingredients.push(ingredients);
response.status(200).send(ingredients);
}
希望这会有所帮助。
答案 1 :(得分:1)
我认为是由于您使用了相同的名称,请尝试以下代码:
app.post('/', function (request, response) {
var _ingredients = request.body;
if (!ingredients || ingredients.text == "") {
response.status(500).send({error: "Your ingredient must have a text"});
} else {
_ingredients.push(ingredients);
response.status(200).send(_ingredients);
}
});
使用下划线('_')区分 local和global 变量始终是一个好习惯。