İyonik bir uygulama oluşturdum ve ön uç çalışmasına sahip oldum. Şimdi PostgreSQL db bağlantım için Node ve Sequelize kullanarak arka tarafa odaklanıyorum.Bağlantısını açmak için bağlantı
Bağlantıyı bin/www olarak oluşturdum ve modellerimde/user.js dosyasımda (kullanıcı modeli oluşturmak için) ve yol dosyalarından (index.js) birinde oluşturmaya çalışıyorum. yeni bir kullanıcı ve db'ye ekleyin.
Daha önce Sequelize kullanmamıştım, bu yüzden kuruluş akışına sahip olup olmadığından emin değilim. Ben başka bir dosyadan bağlantı geçmesine module.exports kullanmaya çalışıyorum, ama aslında
"GET /api/home 500 7.717 ms - 2567 TypeError: Cannot read property 'sync' of undefined
at /Users/me/app/server/routes/api/index.js:13:12"
Bunu yapmak için daha iyi bir yolu var mı 'tanımsız' Yoldan geçen ki?
Bu bin/www dosyasıdır:
var pg = require('pg');
var Sequelize = require("sequelize");
//DB CONNECTION
var sequelize = new Sequelize('dbname', 'postgres', 'password', {
host: 'localhost',
port: '5434',
dialect: 'postgres',
pool: {
max: 5,
min: 0,
idle: 10000
},
});
sequelize.authenticate().then(function(err) {
if (err) console.log('Unable to connect to the PostgreSQL database:', err);
console.log('Connection has been established successfully.');
});
module.exports.sequelize = sequelize;
Bu benim modeller/user.js geçerli:
var Sequelize = require("sequelize");
var sequelize = require("../bin/www").sequelize;
module.exports = function(sequelize, DataTypes) {
var User = sequelize.define('user', {
fb_access_token: {
type: Sequelize.STRING
},
fb_id: {
type: Sequelize.STRING
},
book_wishlist: {
type: Sequelize.ARRAY
}
}, {
freezeTableName: true
});
return User;
}
Ve bu index.js rota:
var Sequelize = require("sequelize");
var express = require('express');
var router = express.Router();
var sequelize = require("../../../bin/www").sequelize;
var User = require('../../../models/user');
router.get('/home', function(req, res, next) {
console.log('in router.get to home');
console.log('User:',User);
sequelize.sync({ force: true }).success(function(err) {
//insert new user
User.create({
fb_access_token: "yes",
fb_id: "no",
book_wishlist: ["yes", "no"]
}).success(function(user) {
//you can now access the newly created user via the variable user
console.log(user);
res.send(user);
});
});
});
Dizin.js'de '' 'var sequelize = required (" ../../../ bin/www "); console.log (sequelize) '' Ve çıkış –
ahh evet yapıştırın - Boş bir nesne döndürür: {} – mdegges
Tamam, bu yüzden her şeyi doğru bir kod perspektifinden yapıyorsunuz, ancak zor bir hata var. Neredeyse farklı bir dosya yüklüyor gibi görünüyor. Bin/www' nedir? Bu bir dizin mi? Yoksa kelimenin tam anlamıyla 'www.js'? –