gpt4 book ai didi

javascript - JavaScript Azure Function 中的 if 语句不起作用

转载 作者:行者123 更新时间:2023-11-30 19:57:43 25 4
gpt4 key购买 nike

目标

我的公司使用一个外联网平台,让客户可以发布产品增强的“想法”。我们希望在 Slack 中发布这些想法的通知。 Extranet 平台不提供创意 Webhook。它确实提供了一个想法 API。但是,它没有提供查询两个时间戳之前、之后或之间创建的想法的方法。创意 API 确实以时间戳形式返回创意创建日期,如下所示:2018-11-13T02:03:31.583。它还返回发布创意的作者姓名和创意文本。

我能想到的最佳解决方案是使用 Azure 逻辑应用程序:

  • 每天轮询一次创意 API 以获取最新的 X 个创意
  • 对于每个想法,将返回的 JSON 对象的创建日期、作者和文本字段推送到 Azure 函数(代码如下)
  • Azure 函数将创建日期字段与今天的日期进行比较
  • 如果日期匹配,Azure 函数会将作者和文本字段发送回 Azure 逻辑应用以发送到 Slack
  • 如果日期不匹配,Azure Function 不会执行任何操作

代码

输入

(我在 JSON 中留下了其他想法元数据,例如作者和文本,以简化我的问题)

{
"date": "2018-12-12T17:34:07.693"
}

Azure 函数index.js

module.exports = function (context, data) {
var ideaDate = data.body;

var ideaDate2 = JSON.stringify(ideaDate);
var ideaDate3 = JSON.parse(ideaDate2);
var ideaDate4 = ideaDate3.date;
// Extract date only
var ideaDate5 = ideaDate4.substring(0, 10);

// Get today's date
var todaysDate = new Date();
var localDate = new Date(todaysDate);
var localDate1 = localDate.toISOString().toString()
// Extract date only
var localDate2 = localDate1.substring(0, 10);


///PROBLEMATIC LINE
if (new String(ideaDate5).valueOf() === new String(localDate2).valueOf()) {

// Response of the function to be used later
context.res = {
body: {
ideaDate,
ideaDate2,
ideaDate3,
ideaDate4,
ideaDate5,
todaysDate,
localDate,
localDate1,
localDate2
}
};
}

context.done();
};

输出

500: Internal Service Error

成功输出,没有有问题的 if 语句行

我在输出中包含所有变量,以演示脚本运行时会发生什么。

{
"ideaDate": {
"date": "2018-12-12T17:34:07.693"
},
"ideaDate2": "{\"date\":\"2018-12-12T17:34:07.693\"}",
"ideaDate3": {
"date": "2018-12-12T17:34:07.693"
},
"ideaDate4": "2018-12-12T17:34:07.693",
"ideaDate5": "2018-12-12",
"todaysDate": "2018-12-12T23:51:26.110Z",
"localDate": "2018-12-12T23:51:26.110Z",
"localDate1": "2018-12-12T23:51:26.110Z",
"localDate2": "2018-12-12"
}

我是 JavaScript 新手

感谢您提供任何检测问题或推荐更好流程的建议。

编辑

感谢 ABOS 指出 if 语句必须用括号括起来。我已将这些添加到上面打印的代码中。 Azure Function 不再返回错误。但是,它不会在输出中返回 JSON 字段。

但我很高兴能够更接近一步。

编辑2

Azure 函数中的 function.json:

{
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"methods": [
"get",
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "res"
}
]
}

最佳答案

根据当前 UTC 时间更改输入日期,代码应按预期返回 JSON 正文。以及对您的代码的一些改进。

module.exports = function (context, data) {
var ideaDate = new Date(data.body.date).toISOString().substring(0, 10);
var todaysDate = new Date().toISOString().substring(0, 10);

if (ideaDate === todaysDate) {

context.res = {
body: {
ideaDate,
todaysDate
}
};
}

context.done();
};

关于javascript - JavaScript Azure Function 中的 if 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53753338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com