Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 我进快车后怎么打电话给PUT_Node.js_Mongodb_Express - Fatal编程技术网

Node.js 我进快车后怎么打电话给PUT

Node.js 我进快车后怎么打电话给PUT,node.js,mongodb,express,Node.js,Mongodb,Express,请求GET然后放入Postman的工作方式与预期的一样,尽管我不知道如何在节点中以编程方式实现这一点 例如: 请求获取本地主机:3000/订单/亚洲 返回50只股票 请求放置本地主机:3000/订单/亚洲/40 返回10 app.get('/orders/:coffeeid', function(req, res) { db.collection('coffees').find({'name': req.params.coffeeid}).toArray((err, result) =&g

请求GET然后放入Postman的工作方式与预期的一样,尽管我不知道如何在节点中以编程方式实现这一点

例如:

请求获取本地主机:3000/订单/亚洲 返回50只股票

请求放置本地主机:3000/订单/亚洲/40 返回10

app.get('/orders/:coffeeid', function(req, res) { 
  db.collection('coffees').find({'name': req.params.coffeeid}).toArray((err, result) => { 
    if (err) return res.send(500, err)
    var data = {
        "orders": {
            "name": result.coffeeid,
            "stock": result.stock
        }
    };
    res.json(result);
})
})

app.put('/orders/:coffeeid/:quantity', function(req, res) {

  db.collection('coffees').find({'name': req.params.coffeeid}).toArray((err, result) => { 
    if (err) return res.send(500, err)
    orders = {
        "name": req.params.name,
        "quantity": req.params.quantity
    };

console.log(result[0].stock, orders.quantity, orders.quantity <= result[0].stock) // resolvido
console.log(orders.quantity)

if (Number(orders.quantity) <= Number(result[0].stock) ) {

  result[0].stock = result[0].stock - orders.quantity
  db.collection('coffees').updateOne({'name': req.params.coffeeid}, result[0], function(err, result) {
    console.log('Order dispached. Thank you');
    res.json(result);
    res.render('orders.ejs', {orders: result, success: false})
  });
}
else {
  console.log('There isnt enough in stock. Will dispach ASAP');
  res.json({error: true});
}

  })
})
app.get('/orders/:coffeeid',函数(req,res){
collection('coffee').find({'name':req.params.coffeeid}).toArray((err,result)=>{
if(err)返回res.send(500,err)
风险值数据={
“命令”:{
“名称”:result.coffeeid,
“股票”:result.stock
}
};
res.json(结果);
})
})
app.put('/orders/:coffeeid/:quantity',函数(请求、回复){
collection('coffee').find({'name':req.params.coffeeid}).toArray((err,result)=>{
if(err)返回res.send(500,err)
订单={
“名称”:请求参数名称,
“数量”:要求参数数量
};

console.log(结果[0]。stock,orders.quantity,orders.quantity如果我理解正确,答案将是,不要为
PUT
请求声明匿名函数,您可以这样做 `

const whatEverYouWant=函数(req,res){
collection('coffee').find({'name':req.params.coffeeid}).toArray((err,result)=>{
if(err)返回res.send(500,err)
订单={
“名称”:请求参数名称,
“数量”:要求参数数量
};

console.log(结果[0]。stock,orders.quantity,orders.quantity如果我理解正确,在运行
GET
请求之后,您正在尝试调用
PUT
请求中的方法?@MatthewWeeks Yes。在这种情况下,应打印“Order dispatched.Thank you”。这两个console.log都返回未定义的console.log(结果)为你打印?也未定义..但是你的建议是,我不能调用PUT来用/coffeeid/quantity更新我的订单0。它不起作用。这个req.params.coffeeid的值是什么?为什么是nout?你可以做的是,当调用你的putRequest(req,res)时,你需要传递你的parms
你的putRequest({…req,params:{coffeeid:1,quantity:1},res)
orders.quantity未定义,因为我们没有将参数变量传递到PUT函数中。req.params.coffeeid也未定义
const whatEverYouWant =function(req, res) {

  db.collection('coffees').find({'name': req.params.coffeeid}).toArray((err, result) => { 
    if (err) return res.send(500, err)
    orders = {
        "name": req.params.name,
        "quantity": req.params.quantity
    };

console.log(result[0].stock, orders.quantity, orders.quantity <= result[0].stock) // resolvido
console.log(orders.quantity)

if (Number(orders.quantity) <= Number(result[0].stock) ) {

  result[0].stock = result[0].stock - orders.quantity
  db.collection('coffees').updateOne({'name': req.params.coffeeid}, result[0], function(err, result) {
    console.log('Order dispached. Thank you');
    res.json(result);
    res.render('orders.ejs', {orders: result, success: false})
  });
}
else {
  console.log('There isnt enough in stock. Will dispach ASAP');
  res.json({error: true});
}

  })
}
app.get('/orders/:coffeeid', function(req, res) { 
  db.collection('coffees').find({'name': req.params.coffeeid}).toArray((err, result) => { 
    if (err) return res.send(500, err)
    var data = {
        "orders": {
            "name": result.coffeeid,
            "stock": result.stock
        }
    };
          yourPutRequest(req,res) //
    res.json(result);
})
})

app.put('/orders/:coffeeid/:quantity',whatEverYouWant)