저는 노드를 처음 사용하고 지리 데이터를 처리 할 수있는 간단한 API를 구축하고 있습니다.knex에 postgis extention을 설정하는 방법은 무엇입니까?
const knex = require('./knex');
과에 말은
update(id, poi) {
return knex('poi').where('id', id).update(poi, '*');
기타 문서를 사용이를 위해 나는 내가 지금처럼 내 queries.js에서 필요로 연결 파일이 knex-postgis
을 구현하기 위해 노력하고 다음과 같이 확장 프로그램을 구현하십시오.
const knex = require('knex');
const knexPostgis = require('knex-postgis');
const db = knex({
dialect: 'postgres'
});
// install postgis functions in knex.postgis;
const st = knexPostgis(db);
/* or:
* knexPostgis(db);
* const st = db.postgis;
*/
누군가가 가능합니까? 내 구조에서 코드를 구현하는 위치를 설명하십시오. 확장 기능을 처음 사용하는 경우입니다. 내 knex.js 파일에 넣습니까?
내 knex.js는 다음과 같다 :
이const environment = process.env.NODE_ENV || 'development';
const config = require('../knexfile');
const environmentConfig = config[environment];
const knex = require('knex');
const connection = knex(environmentConfig);
module.exports = connection;
편집 :
create() {
const sql = knex.insert({
geom: st.geomFromText('Point(-71.064544 44.28787)', 4326)
}).into('poi').toString();
console.log(sql);
return sql
: 내 queries.js이 퍼팅 시도가
const knex = require('./knex');
const knexPostgis = require('knex-postgis');
const st = knexPostgis(knex);
const db = knex({
dialect: 'postgres'
});
기능을 만들 내 파일 그것은 console.log
pgadmin에서 작동하지만 postman에서 작동하는 유효한 sql은을 얻습니다."message": "queries.create(...).then is not a function"
,
그리고 당신은 knex.insert
를 호출하고
router.post('/', (req, res, next) => {
queries.create(req.body).then(poi => {
res.json(poi[0]);
});
});
답을 주셔서 감사합니다. 배울 점이 많습니다.) 약속을 사용하면서 녹색. 코드를 다시 작성할 수있게되면 (코딩을위한 새 컴퓨터를 설정하는 즉시)이 작업을 시도 할 것입니다. 정말 고마워. – geogrow
마침내 제안을 약간 수정하여 작동하게되었습니다. (.into ('table') 추가. 빌더 .e const sql = db.insert ({ geom : st.geomFromText ('Point (-71.064544 44.28787)', 4326) }). into ('poi'); console.log (sql.toString()); return sql – geogrow
경로 처리기가 약속 인터페이스를 기대한다고 말하면 경로가 개체뿐만 아니라 문자열을 기다리고 있다는 것을 의미합니까? 내가 그걸 제대로 이해 했니? – geogrow