Javascript 带sqlite3的jekyll静态站点生成器

Javascript 带sqlite3的jekyll静态站点生成器,javascript,sqlite,jekyll,Javascript,Sqlite,Jekyll,我知道Jekyll的意思是不要使用数据库,而是使用静态文件,但是 如果我想在我的静态站点上实现评级,只是为了能够 存储我的每个学生对某篇作文打分的星星数,然后展示 如果“sqlite”是一个基于文件的数据库,那么它会是一个平均值吗 是否可以使用一些javascript api从该sqlite文件进行写/读操作?您不应该使用javascript访问您的数据库,因为您的信息会暴露给客户端,这会使数据库易受攻击 然而,有些方法可能是你想要的,也可能不是。我并不完全熟悉Jekyll的工作原理,但如果我理

我知道Jekyll的意思是不要使用数据库,而是使用静态文件,但是 如果我想在我的静态站点上实现评级,只是为了能够 存储我的每个学生对某篇作文打分的星星数,然后展示 如果“sqlite”是一个基于文件的数据库,那么它会是一个平均值吗
是否可以使用一些javascript api从该sqlite文件进行写/读操作?

您不应该使用javascript访问您的数据库,因为您的信息会暴露给客户端,这会使数据库易受攻击

然而,有些方法可能是你想要的,也可能不是。我并不完全熟悉Jekyll的工作原理,但如果我理解正确,如果它只是生成静态文件,那么您可能能够使您的站点的某些部分由Jekyll生成,但其他部分在PHP上运行以进行SQL调用


这肯定会有点黑客,所以我会评估你想用Jekyll有多重要。请记住,Jekyll是为一个非常特殊的目的而设计的——将纯文本转换为静态站点,因此这可能不是适合您的工具

您不应该使用JavaScript访问您的数据库,因为您的信息会暴露给客户端,这会使数据库易受攻击

然而,有些方法可能是你想要的,也可能不是。我并不完全熟悉Jekyll的工作原理,但如果我理解正确,如果它只是生成静态文件,那么您可能能够使您的站点的某些部分由Jekyll生成,但其他部分在PHP上运行以进行SQL调用

这肯定会有点黑客,所以我会评估你想用Jekyll有多重要。请记住,Jekyll是为一个非常特殊的目的而设计的——将纯文本转换为静态站点,因此这可能不是适合您的工具

您可以尝试一下,或者他们都提供免费计划和javascript API

Firebase有一个。

你可以尝试一下,或者他们都提供免费计划和javascript API


Firebase有一个。

是的,可以向Jekyll生成的静态站点添加数据库功能。 就我而言,我正在使用firebase。Google的Firebase为我们提供了许多功能,如存储、数据库、托管以及使用功能访问无服务器架构

所以说到重点,你们需要做的就是注册 然后创建一个应用程序,然后在JavaScript中的head标记中添加以下代码

<script src="https://www.gstatic.com/firebasejs/5.9.0/firebase.js"></script>
<script>
  // Initialize Firebase
  // TODO: Replace with your project's customized code snippet
  var config = {
    apiKey: "<API_KEY>",
    authDomain: "<PROJECT_ID>.firebaseapp.com",
    databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
    projectId: "<PROJECT_ID>",
    storageBucket: "<BUCKET>.appspot.com",
    messagingSenderId: "<SENDER_ID>",
  };
  firebase.initializeApp(config);

var timestamp = new Date().valueOf();
            var obj = {};
            obj[timestamp] = "1";

            firebase.database().ref('/').update(obj)
</script>
欲知详情,, 你可以访问我关于这个话题的博客

注意:我们还可以对可以向json存储区读写数据的用户实施安全限制

谢谢,
Pavan

是的,可以向Jekyll生成的静态站点添加数据库功能。 就我而言,我正在使用firebase。Google的Firebase为我们提供了许多功能,如存储、数据库、托管以及使用功能访问无服务器架构

所以说到重点,你们需要做的就是注册 然后创建一个应用程序,然后在JavaScript中的head标记中添加以下代码

<script src="https://www.gstatic.com/firebasejs/5.9.0/firebase.js"></script>
<script>
  // Initialize Firebase
  // TODO: Replace with your project's customized code snippet
  var config = {
    apiKey: "<API_KEY>",
    authDomain: "<PROJECT_ID>.firebaseapp.com",
    databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
    projectId: "<PROJECT_ID>",
    storageBucket: "<BUCKET>.appspot.com",
    messagingSenderId: "<SENDER_ID>",
  };
  firebase.initializeApp(config);

var timestamp = new Date().valueOf();
            var obj = {};
            obj[timestamp] = "1";

            firebase.database().ref('/').update(obj)
</script>
欲知详情,, 你可以访问我关于这个话题的博客

注意:我们还可以对可以向json存储区读写数据的用户实施安全限制

谢谢,
Pavan

我无法在服务器上安装PHP解释器,我正在使用它来托管我的jekyll站点,所以我无法使用这些原始标记。我还认为,使用php脚本向其他域发出ajax请求是不可能的?在对其他域进行ajax调用时,您将遇到跨源问题。您可能想在问题中添加您的服务器正在运行并将允许的内容。它只允许简单的服务。我会坚持所有的静态版本,没有评级,这对我来说并不重要,我只是好奇而已。谢谢你的平静。看看大卫的答案——火基可能就是你想要的。我只是查找了一些同时使用它们的地方。但请记住,所有内容对用户都是公开的。这不是问题,我希望所有内容都是公开的。虽然firebase似乎也提供了简单的用户身份验证;我不能在服务器上安装PHP解释器,我用它来托管我的jekyll站点,所以我不能使用这些原始标记。我还认为,使用php脚本向其他域发出ajax请求是不可能的?在对其他域进行ajax调用时,您将遇到跨源问题。您可能想在问题中添加您的服务器正在运行并将允许的内容。它只允许简单的服务。我会坚持所有的静态版本,没有评级,这对我来说并不重要,我只是好奇而已。谢谢你的平静。看看大卫的答案——火基可能就是你想要的。我只是查找了一些同时使用它们的地方。请记住,所有内容对用户来说都是公开的,这并不是一个问题
无论如何,我希望它是公开的。虽然firebase似乎也提供了简单的用户身份验证;嘿,这很好。所以使用firebase freehacker计划托管,我可以轻松部署,静态站点存储的可能性等等。。?太好了,真是太感谢你了,大卫。。谢谢你指点我去火场。当您需要页面上的天气信息或我的情况下的评级信息时,与静态生成的文件(如Jekyll文件)结合使用非常好:干杯!嘿,这很好。所以使用firebase freehacker计划托管,我可以轻松部署,静态站点存储的可能性等等。。?太好了,真是太感谢你了,大卫。。谢谢你指点我去火场。当您需要页面上的天气信息或我的情况下的评级信息时,与静态生成的文件(如Jekyll文件)结合使用非常好:干杯!