ArangoDB Foxx 模型日期时间戳不起作用
ArangoDB Foxx Model date timestamp not working
我正在尝试在ArangoDB中设置一个消息集合,该集合在输入消息时设置时间戳。但是,当我在 foxx 中设置模型时,如果我在模型架构中设置joi.date()
或joi.date().timestamp()
,它将不起作用。
我尝试在 joi 文档中使用该示例并将其转换为从测试示例使用。
'use strict';
var Foxx = require('org/arangodb/foxx');
var joi = require('joi');
var now = new Date();
var javascriptTimestamp = now.getTime();
var unixTimestamp = now.getTime() / 1000;
class TestMessage extends Foxx.Model {
}
TestMessage.prototype.schema = joi.object().options({abortEarly: false}).keys({
unix: joi.date().timestamp('unix'),
message: joi.string()
});
TestMessage.prototype.beforeUpdate = function() {
this.set({unix: now.getTime()});
};
module.exports = TestMessage;
当我保存它并进行测试时,模型不会显示或响应开发页面上的任何内容。
如何正确设置日期和时间戳?
我唯一能做的就是直接使用 AQL,但我仍然不明白如何将其集成到控制器中,我希望有一个简单的解决方案。
joi 中日期类型的问题是 JSON 不支持日期对象,因此数据库和请求中的数据表示形式将不匹配(您希望使用毫秒时间戳,但在内部,Date 将存储为 JSON 日期字符串)。
如果需要能够将日期值转换为服务中的日期对象,请尝试改用joi.date().iso()
。iso 变体将解析 JSON.stringify
使用的格式,以便数据在往返过程中幸存下来:
let isoDate = JSON.parse(JSON.stringify(new Date());
let result = joi.date().iso().validate(isoDate);
let joiDate = JSON.parse(JSON.stringify(result.value));
assert.equal(isoDate, joiDate);
还应使用基于函数的模型扩展,而不是基于类的语法。由于引擎限制,基于类的语法被恢复,尽管文档显然尚未完全调整:
const Foxx = require('org/arangodb/foxx');
const TestMessage = Foxx.Model.extends({
schema: {/* ... */}
});
相关文章:
- Javascript设置日期不起作用,显示错误的时间
- 为什么这个代码不起作用?我花了很长时间试图弄清楚这一点
- AngularJs的$cookies在过期时间内不起作用
- mysql时间戳格式的Javascript regex不起作用
- 时间驱动触发器在 Google 电子表格中不起作用
- 通过jQuery在IE中计算时间戳 - 不起作用
- 清除间隔在 6 个时间设置后不起作用间隔
- 在javascript中使用PHP时间字符串后,倒计时不起作用
- YouTube V3 API——按持续时间过滤相关视频信息,不;似乎不起作用
- 选项“;daysOfWeekDisabled”;在引导程序日期时间选择器中不起作用
- Javascript 比较时间不起作用
- Javascript窗口/图像加载时间 - 这应该不起作用,但它确实有效
- 引导时间选择器不起作用
- 日期时间选取器不起作用
- 为什么我的保存时间功能不起作用?PHP + AJAX JS.
- 用于显示服务器上的 javascript 时间的脚本不起作用
- ArangoDB Foxx 模型日期时间戳不起作用
- 日期时间选择器不起作用.不明白怎么写JS
- 添加新行动态引导日期时间选择器不起作用
- 为什么我的工具提示的延迟时间选项不起作用?