2017-11-15 13 views
1

expressでexpressとmysqljsを使用しています。私のデータベースにユーザを追加するように要求するには、コールバック関数を定義する必要があります。応答を処理する。残念ながら私はコールバック関数でres.sendを表現するアクセス権がありません。私はres.sendメソッドにinsertIDを送信したいと思います。私はこれをやっていますか?ここに私のコードです。(例えばnodejsのmysqljsで使用される)コールバック関数でのexpress response.sendの使用方法

app.post("/adduser", (req, res) => { 
    const con = mysql.createConnection({ 
    host: "localhost", 
    user: "root", 
    password: "", 
    database: "customer" 
    }); 
    const name = req.body.name; 
    const age = req.body.age; 

const users = { name: name, age: age }; 
    const query = "INSERT INTO users SET ?"; 
    con.query(query, users, (err, res) => { 
    if (err) throw err; 
    console.log("Last insert ID:", res.insertId); 
    // want to send res.insertId to server 
    // res.send() here 
    }); 

}); 
+0

res.send(res.insertId)。 ? –

+1

私は 'res'と 'result'の両方に同じ変数名 'res'を使用していると思います。 – naota

+0

@UsmanRanaも動作していません – Nikhil

答えて

0

「応答」と「結果」の両方に同じ変数名「res」が使用されていると思います。

ドキュメントによれば、con.queryは 'res'ではなく 'result'を返します。 https://github.com/mysqljs/mysql#performing-queries

app.post("/adduser", (req, res) => { 
    const con = mysql.createConnection({ 
      host: "localhost", 
      user: "root", 
      password: "", 
      database: "customer" 
    }); 
    const name = req.body.name; 
    const age = req.body.age; 

    const users = { name: name, age: age }; 
    const query = "INSERT INTO users SET ?"; 
    con.query(query, users, (err, result) => { 
     if (err) throw err; 
     console.log("Last insert ID:", result.insertId); 
     // want to send result.insertId to server 
     // res.send() here 

     // res.send(result.insertId); // gives an error 
     res.send(result.insertId.toString()); 
    }); 

}); 
+0

上記の手順を実行すると、明示的に廃止されたres.send(状態)が返されます。res.sendStatus(状態)エラー – Nikhil

+0

@Nikhil、ありがとう。どうですか?res.send(result.insertId.toString()); ? – naota

+0

res.send({id:result.insertId})とtoString()もうまくいきました。 Thnx for help – Nikhil

関連する問題