3
データベースとしてpostgresを使用して、knexを使用してクエリを作成しようとしています。私は、コードを実行したときしかし、それは私が私のknexfileにpg
を追加しているにもかかわらずknexクエリsqliteモジュールのインストールを依頼し続ける
Error: Cannot find module 'sqlite3'
を求めておきます。
クエリ
var data = {
id: leagueId,
slug: leagueSlug,
createdAt: new Date()
};
var query = knex('league').insert(data).toString();
query += ' on duplicate key update ' + knex.raw('createdAt= ?, id = ?',[new Date(), id]);
knex.raw(query);
knexfile
module.exports = {
development: {
client: 'pg',
connection: {
user: 'test',
database: 'test'
}
},
production: {
client: 'pg',
connection: process.env.DATABASE_URL
}
};
index.js
var express = require('express');
var request = require('request');
var parse = require('body-parser');
var knex = require('knex');
var Log = require('log');
var router = express.Router();
var log = new Log('info');
/* Retrieve and save leagues*/
router.get('/api/league', function(req, res, next) {
/* exclude slugs */
var excludedSlugs = [ 'eu-cs', 'na-cs', 'iwc', 'all-star'];
request({
method: 'GET',
uri: 'http://test',
headers: {
'Content-Type': 'application/json',
'dataType': 'json'}
}, function (error, response, body){
if(!error && response.statusCode == 200){
var bodyJSON = JSON.parse(body);
var leagueObjects = bodyJSON["leagues"];
for(var objIndex in leagueObjects){
if (excludedSlugs.indexOf(leagueObjects[objIndex]["slug"]) > -1) {
/* excluded slugs - do nothing */
} else {
var leagueId = leagueObjects[objIndex]["id"];
var leagueSlug = leagueObjects[objIndex]["slug"];
var data = {
id: leagueId,
slug: leagueSlug,
name: "lol",
createdAt: new Date()
};
var query = knex('league').insert(data).toString();
query += ' on duplicate key update ' + 'createdAt= ?, id = ?',[new Date(), leagueId];
knex.raw(query);
}
}
res.json(leagueObjects);
} else {
log.error(error);
}
})
});
module.exports = router;
のようなknexを使用
を使用しましたあなたは** knexfile **を読んでいますか? –
@Peter Pikはあなたのプロジェクトのレイアウトを熟知してください。また、クエリビルダー(var knex = // ... part)をインスタンス化する場所です。また、このサンプルプロジェクトのレイアウトを見てください、それは移行によって使用される同じknexfile.jsを使用する方法を示しています:https://github.com/sombriks/blogpost-upload-express-knex/blob/master/index.js – Sombriks
が今すぐレイアウトを追加しました。ここで私は残りのAPIからデータを取得しようとしており、knexを使って私のpostgres dbに追加します –