小编Ger*_*blo的帖子

为类似于概念、基于块(“段落”)或基于文档的应用程序选择数据库模型?

1.问题

最近,似乎许多具有“无限”树结构的笔记管理器正在选择块模型(其中每个段落都是数据库中的一个条目),而不是文档或文件模型。

积木 文件
Notion
Workflowy
Remnote
Dynalist
Roam Research
Evernote
黑曜石
熊应用程序

如果您发现表中有任何错误,请告诉我。

我们已经开发一个与 Notion 非常相似的应用程序已有 8 个月的时间,也使用块模型,但我们正在考虑进行彻底的改变并切换到文档模型。目前 MongoDB 中的块结构如下所示:

_id: "61fd3ede7f6d2cc7a53ca669"
children: Array
    0: "61fd3ee87f6d2cc7a53ca66b"
    1: "61fd3ef37f6d2cc7a53ca671"
    2: "61fd3ef77f6d2cc7a53ca673"
backlinks: Array
type: "bullet"
parentPage: Array
    _id: "61fd3ede7f6e2ccra53ca664"
    userParent: "german-jablo"
    permisionParent: "edit, comment, read"
parentParagraph: "61fd3ede7f6d2cc7a53ca668"
content: "<p>This is a paragraph</p>"
isCollapsed: false
createdAt: 2022-02-04T14:57:34.280+00:00
updatedAt: 2022-02-04T14:57:59.585+00:00
Run Code Online (Sandbox Code Playgroud)

许多页面都讨论了两种方法的差异(示例),尽管方式非常模糊,因此我们决定打开此线程来寻找问题的更科学答案。

我们的应用程序的特点

应用程序 可以作为文档打开的块 可以折叠或展开其子项的块
概念 页面类型块 切换类型块
工作流程 全部 全部
印象笔记 文件 没有任何
我们的应用程序 页面类型块 所有其他人

我们的应用程序有两种类型的“块”。页面类型(与 Notion 中一样,可以插入任何注释并在当前文档“内部”生成文档),以及其余块,相当于 …

javascript performance tinymce mongodb ckeditor

7
推荐指数
1
解决办法
894
查看次数

使用外部 Node.js API 进行下一步身份验证

我正在使用 Next Auth 并运行一个独立的 Node.js API。我正在使用使用凭证的 Next Auth 并使用 axios 将用户名和密码发送到 API。

在 API 方面,如果用户名和密码正确,我将使用 express-session 设置会话并将其保存到数据库中。

如果 Next.js 中的响应状态为 201,我想将 API 中的快速会话令牌添加到我的 Next.js 会话中。

下面的代码正在工作,我进行身份验证,当我在受保护的页面中进行 console.log 会话时,我看到在服务器上设置的快速会话令牌。该令牌也存储在 mongoDB 中。但这是正确的吗?这样做的目的只是为了保护前端的路由,即:检查 Next.js 中是否有会话

如果在受保护的页面上我需要发出 API 请求,我是否会根据登录用户的数据库令牌检查该会话令牌?

最后,JWT 在这里适合什么,这是 Next.js 使用 JWT 处理客户端身份验证会话的方式吗?

    import NextAuth from "next-auth";
    import CredentialsProvider from "next-auth/providers/credentials";
    import axios from "axios";
    export default NextAuth({
      session: {
        jwt: true,
        maxAge: 30 * 24 * 60 * 60,
      },
      providers: [
        CredentialsProvider({
          async authorize(credentials) {
            try {
              const response = …
Run Code Online (Sandbox Code Playgroud)

next.js next-auth

7
推荐指数
1
解决办法
1万
查看次数

如何在外部 .js 文件中分离 .vue 组件的方法?

我的组件留下了许多行代码,因此我决定将这些方法放在一个名为functions.js 的单独文件中。我无法调用这些方法。

我试过这个:

函数.js

function sendList() {...};
function getLists() {...};
function deleteList(listId) {...}

export default {sendList, getLists, deleteList}
Run Code Online (Sandbox Code Playgroud)

MyLayout.vue

...
<script>
import {sendList, getLists, deleteList} from '../statics/functions.js'
...
created() { this.getLists();},
...
Run Code Online (Sandbox Code Playgroud)

出现3个错误:

vue.runtime.esm.js?2b0e:587 [Vue warn]: 创建钩子时出错:“TypeError: this.getLists 不是函数”

类型错误:this.getLists 不是一个函数

属性或方法“列表”未在实例上定义,而是在渲染期间引用。通过初始化该属性,确保该属性在数据选项中或对于基于类的组件是反应性的。请参阅:https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties

javascript vue.js vuejs2

3
推荐指数
1
解决办法
6243
查看次数