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方法,这些方法对我来说很有效,可以帮助其他在将来看到这种情况的人,我会受到惩罚。我退出