MySQL XDevAPI如何返回成功状态



使用XDEVAPI与MySQL对话开发我的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()方法还返回一个Promise,在insert()的情况下,它不期望任何类型的回调,因此永远不会调用以下行:

console.log('inserted')

execute()期望回调的唯一实例是TableSelectCollectionFind。我们正在慢慢摆脱API风格,因为现在您还可以通过在Promise解析到的Result实例上调用fetchOne()fetchAll()来处理结果集(请参见DocResultRowResult(。

在任何情况下,都不会阻止res.send(200)调用的发生,也不会隐式地更改底层HTTP框架(您似乎正在使用(的API。因此,您提到的问题似乎与MySQL X DevAPI连接器无关。

TypeError: res.send is not a function

在调用res对象之前(以及调用add()之前(,您可能在某个地方覆盖了该对象。

这可能没有多大帮助,但这是我现在能从你的帖子中提取的唯一内容。

免责声明:我是Node.js 的MySQL X DevAPI连接器的首席开发人员

相关内容

  • 没有找到相关文章

最新更新