MySQL XDevAPI 如何return 成功状态

MySQL XDevAPI How to return a successful status

使用与 MySQL 对话的 XDEVAPI 开发我的 RestAPI。这段代码适用于添加新记录,

myRecord.add = (newmyRecord, res) =>
{
    mysql.getSession(mydb)      // .getSession() is a Promise, returns a session
        .then
        (
            sess =>
            {
                sess.getSchema("myschema").getTable("mytable").insert(...).execute(row=>{console.log('inserted')}); 
                
                res.send(200);   // resulting "UnhandledPromiseRejectionWarning: TypeError: res.send is not a function"
                //return 200;    // Postman still shows "Sending" and Fiddler does not show status 200
            }
            
        );
}

所以我的问题是如何发回一个成功的200来完成POST?

execute() 方法也 returns 返回一个 Promise 并且在 insert() 的情况下,它不期望任何类型的回调,所以下面永远不会调用行:

console.log('inserted')

execute() 期望回调的唯一实例是 TableSelect and CollectionFind. And we are slowly moving away from that API flavour, since now you can also process the result sets by calling fetchOne() or fetchAll() on the Result instance to which that Promise resolves to (see DocResult and RowResult)。

无论如何,没有什么能阻止 res.send(200) 调用的发生,也没有什么会隐式地改变底层 HTTP 框架(您似乎正在使用)的 API。因此,您提到的问题似乎与 MySQL X DevAPI 连接器无关。

TypeError: res.send is not a function

您可能在调用它之前(以及调用 add() 之前)在某处覆盖了 res 对象。

这可能没有多大帮助,但这是我现在可以从您的 post.

中提取的唯一信息

免责声明:我是 MySQL X DevAPI Connector for Node.js

的首席开发人员