Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';无法从Node.js从Google数据存储获取数据_Node.js_Google App Engine_Google Cloud Datastore - Fatal编程技术网

Can';无法从Node.js从Google数据存储获取数据

Can';无法从Node.js从Google数据存储获取数据,node.js,google-app-engine,google-cloud-datastore,Node.js,Google App Engine,Google Cloud Datastore,我无法从方法getuserpost获取数据。网页阻塞,没有显示任何内容 代码的其余部分可以很好地添加和删除数据,然后重定向到主页,但该方法不显示JSON输出。我试过使用res.send和res.render但是没有 有人知道这个代码有什么问题吗 app.get('/getuser', (req, res) => { res.render('getuser'); }); //DOESN'T WORK app.post('/getuserpost', (req, res) =>

我无法从方法
getuserpost
获取数据。网页阻塞,没有显示任何内容

代码的其余部分可以很好地添加和删除数据,然后重定向到主页,但该方法不显示JSON输出。我试过使用
res.send
res.render
但是没有

有人知道这个代码有什么问题吗

app.get('/getuser', (req, res) => {
    res.render('getuser');
});
//DOESN'T WORK
app.post('/getuserpost', (req, res) => {
    const query = datastore.createQuery('usersTable').filter('girl', req.body.girl_field).order('timestamp', { descending: true }).limit(10);
    datastore.runQuery(query).then((results) => {
        const entities = results[0];
        res.json(entities[0]);
    });
});
这是该方法的HTML:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <form action="/getuserpost/" method="POST">     
        <label for="girl_name">Enter girl: </label>
        <input id="girl_name" type="text" name="girl_field" value="Default girl for user">
        <input type="submit" value="OK">
    </form>
    <br>
    <a href="/home">Home</a>
    <br>
    <a href="/adduser">Add user</a>
    <br>
    <a href="/updateuser">Update user</a>
    <br>
    <a href="/deleteuser">Delete user</a>
    <br>
</body>

</html>

文件
输入女孩:






我正在使用带有谷歌应用程序引擎的谷歌数据存储。

我猜您在过滤器中遗漏了操作员选项

.filter('girl', "=", req.body.girl_field)

我猜你错过了过滤器中的运算符选项

.filter('girl', "=", req.body.girl_field)
问题在于getuserpost中的代码,当我对代码进行注释时,它可以工作,但当我删除res.send(“output”)并取消注释它阻塞的代码时。 这个评论版本也不起作用。 下面的删除方法及其查询有效

app.get('/deleteuser', (req, res) => {
    res.render('deleteuser');
});
//WORKS
app.post('/deleteuserpost', (req, res) => {
    const query = datastore.createQuery('usersData').filter('car', req.body.car_field);
    datastore.runQuery(query).then((results) => {
        const entities = results[0];
        datastore.delete(entities[0][datastore.KEY], (err) => {
            if (!err) {
                res.redirect('/');
            }
        });
    });
});
问题在于getuserpost中的代码,当我对代码进行注释时,它可以工作,但当我删除res.send(“output”)并取消注释它阻塞的代码时。 这个评论版本也不起作用。 下面的删除方法及其查询有效

app.get('/deleteuser', (req, res) => {
    res.render('deleteuser');
});
//WORKS
app.post('/deleteuserpost', (req, res) => {
    const query = datastore.createQuery('usersData').filter('car', req.body.car_field);
    datastore.runQuery(query).then((results) => {
        const entities = results[0];
        datastore.delete(entities[0][datastore.KEY], (err) => {
            if (!err) {
                res.redirect('/');
            }
        });
    });
});

使用“节点JS”从“应用程序引擎”中的“数据存储”读取数据的解决方案:


使用“节点JS”从“应用程序引擎”中的“数据存储”读取数据的解决方案:


使用“节点JS”从“应用程序引擎”中的“数据存储”添加数据的解决方案:


使用“节点JS”从“应用程序引擎”中的“数据存储”添加数据的解决方案:


使用“节点JS”从“应用程序引擎”中的“数据存储”更新数据的解决方案:


使用“节点JS”从“应用程序引擎”中的“数据存储”更新数据的解决方案:

您需要为字段
girl
timestamp
建立复合索引。 复合索引上的文档

yaml文件应包含以下内容

- kind: usersTable
  properties:
  - name: girl
  - name: timestamp
    direction: desc
要应用复合索引,请运行以下命令

gcloud -q datastore create-indexes path/to/yaml/file
您需要为字段
girl
timestamp
建立复合索引。 复合索引上的文档

yaml文件应包含以下内容

- kind: usersTable
  properties:
  - name: girl
  - name: timestamp
    direction: desc
要应用复合索引,请运行以下命令

gcloud -q datastore create-indexes path/to/yaml/file


请指定错误消息或执行结果,我不知道如何在应用程序engineGo中查看错误日志以记录并选择部署的应用程序。此外,您可以查看浏览器中的“网络”选项卡,查看服务器返回的内容。当我按“确定”时,它不会执行任何操作。Explorer中的充电轮正在运行且未执行任何操作”错误:提供了不支持的字段值,未定义“我不理解,因为我可以添加和删除,但无法读取请指定错误消息或执行结果,我不知道如何在app engineGo中查看错误日志以记录并选择部署的应用程序。此外,您可以查看浏览器中的“网络”选项卡,查看服务器返回的内容。当我按“确定”时,它不会执行任何操作。Explorer中的充电轮正在运行,没有执行任何操作”错误:提供了不支持的字段值,未定义“我不理解,因为我可以添加和删除,但不能读取。我尝试过,但不起作用。delete方法可以工作,并且不使用“=”符号。我已经删除了App Engine中的所有旧错误消息。我已经多次使用get user web,但没有出现新错误。在使用“gcloud app deploy”之前,我使用过“gcloud app deploy index.yaml”,两者都没有。我在浏览器中看到了“网络”选项卡,但没有显示任何内容。当我使用Postman时,我收到以下消息:502坏网关502坏网关
nginx操作符在
=
的情况下是可选的,我尝试过,但不起作用。delete方法可以工作,并且不使用“=”符号。我已经删除了App Engine中的所有旧错误消息。我已经多次使用get user web,但没有出现新错误。在使用“gcloud app deploy”之前,我使用过“gcloud app deploy index.yaml”,两者都没有。我在浏览器中看到了“网络”选项卡,但没有显示任何内容。当我使用Postman时,我收到以下消息:502坏网关502坏网关
如果
=
您做错了什么,nginx操作符是可选的。实体应该已经包含数据。我们在项目中的每一个地方都使用这种方法。您是否记录了实体内部的内容?您是对的,代码在没有datastore.get()方法的情况下也可以工作。问题始终是“constquery”变量。我去掉了查询中“filter”之后的方法,代码运行得非常完美。谢谢你做错了什么。实体应该已经包含数据。我们在项目中的每一个地方都使用这种方法。您是否记录了实体内部的内容?您是对的,代码在没有datastore.get()方法的情况下也可以工作。问题始终是“constquery”变量。我去掉了查询中“filter”之后的方法,代码运行得非常完美。谢谢这真是难以置信。我正在编写CRUD方法,这些方法对我来说很有效,可以帮助其他在将来看到这种情况的人,我会受到惩罚。我相信这是难以置信的。我正在编写CRUD方法,这些方法对我来说很有效,可以帮助其他在将来看到这种情况的人,我会受到惩罚。我退出