发出请求时 LoopbackJS 和 PostgreSQL 之间的连接出错
Error on connection between LoopbackJS and PostgreSQL when making a request
我安装了 postgresql 并设置了一个新用户,并创建了一个包含我需要的表的新数据库。我还安装了环回并设置了一个 API 服务器。通过 loopback-connector-postgresql 连接 API 和数据库。当我转到 localhost:3000/explorer 并尝试发出 get 请求时,我收到错误 "message": "relation \"public.acl\" does not exist"
。我试图搜索此错误,但没有运气,我是 Loopback JS 的新手。这是完整的错误:
{
"error": {
"statusCode": 500,
"name": "error",
"message": "relation \"public.acl\" does not exist",
"length": 109,
"severity": "ERROR",
"code": "42P01",
"position": "93",
"file": "parse_relation.c",
"line": "1159",
"routine": "parserOpenTable",
"stack": "error: relation \"public.acl\" does not exist\n at Connection.parseE (C:\Users\Adomas\Documents\ActualDocs\Projects\ReminderApp\node_modules\pg\lib\connection.js:553:11)\n at Connection.parseMessage (C:\Users\Adomas\Documents\ActualDocs\Projects\ReminderApp\node_modules\pg\lib\connection.js:378:19)\n at Socket.<anonymous> (C:\Users\Adomas\Documents\ActualDocs\Projects\ReminderApp\node_modules\pg\lib\connection.js:119:22)\n at emitOne (events.js:116:13)\n at Socket.emit (events.js:211:7)\n at addChunk (_stream_readable.js:263:12)\n at readableAddChunk (_stream_readable.js:250:11)\n at Socket.Readable.push (_stream_readable.js:208:10)\n at TCP.onread (net.js:597:20)"
}
}
我认为问题是因为您无法为环回的内置模型创建数据库表。 ACL就是其中之一。
您可以按照此link
上的说明进行操作
将文本复制粘贴到此处以便于您查找
To create tables for LoopBack built-in models, follow this procedure:
Follow the basic procedure in Attaching models to data sources to
change from the in-memory data source to the database you want to
use.
Create server/create-lb-tables.js file with the following:
var server = require('./server');
var ds = server.dataSources.db;
var lbTables = ['User', 'AccessToken', 'ACL', 'RoleMapping', 'Role'];
ds.automigrate(lbTables, function(er) {
if (er) throw er;
console.log('Loopback tables [' + lbTables + '] created in ',ds.adapter.name);
ds.disconnect();
});
Run the script manually:
$ cd server
$ node create-lb-tables.js
我安装了 postgresql 并设置了一个新用户,并创建了一个包含我需要的表的新数据库。我还安装了环回并设置了一个 API 服务器。通过 loopback-connector-postgresql 连接 API 和数据库。当我转到 localhost:3000/explorer 并尝试发出 get 请求时,我收到错误 "message": "relation \"public.acl\" does not exist"
。我试图搜索此错误,但没有运气,我是 Loopback JS 的新手。这是完整的错误:
{
"error": {
"statusCode": 500,
"name": "error",
"message": "relation \"public.acl\" does not exist",
"length": 109,
"severity": "ERROR",
"code": "42P01",
"position": "93",
"file": "parse_relation.c",
"line": "1159",
"routine": "parserOpenTable",
"stack": "error: relation \"public.acl\" does not exist\n at Connection.parseE (C:\Users\Adomas\Documents\ActualDocs\Projects\ReminderApp\node_modules\pg\lib\connection.js:553:11)\n at Connection.parseMessage (C:\Users\Adomas\Documents\ActualDocs\Projects\ReminderApp\node_modules\pg\lib\connection.js:378:19)\n at Socket.<anonymous> (C:\Users\Adomas\Documents\ActualDocs\Projects\ReminderApp\node_modules\pg\lib\connection.js:119:22)\n at emitOne (events.js:116:13)\n at Socket.emit (events.js:211:7)\n at addChunk (_stream_readable.js:263:12)\n at readableAddChunk (_stream_readable.js:250:11)\n at Socket.Readable.push (_stream_readable.js:208:10)\n at TCP.onread (net.js:597:20)"
}
}
我认为问题是因为您无法为环回的内置模型创建数据库表。 ACL就是其中之一。
您可以按照此link
上的说明进行操作将文本复制粘贴到此处以便于您查找
To create tables for LoopBack built-in models, follow this procedure:
Follow the basic procedure in Attaching models to data sources to change from the in-memory data source to the database you want to use.
Create server/create-lb-tables.js file with the following:
var server = require('./server'); var ds = server.dataSources.db; var lbTables = ['User', 'AccessToken', 'ACL', 'RoleMapping', 'Role']; ds.automigrate(lbTables, function(er) { if (er) throw er; console.log('Loopback tables [' + lbTables + '] created in ',ds.adapter.name); ds.disconnect(); });
Run the script manually:
$ cd server $ node create-lb-tables.js