Skip to content
rhiokim edited this page Jan 28, 2013 · 1 revision

μ»¬λž™μ…˜μ— μ—”ν‹°ν‹° μΆ”κ°€ν•˜κΈ°

RDMS μ—μ„œ λ§ν•˜λŠ” ν…Œμ΄λΈ”μ΄ μ»¬λž™μ…˜μ΄λΌ ν•  수 있고 ν…Œμ΄λΈ”μ„ κ΅¬μ„±ν•˜λŠ” ν•˜λ‚˜ν•˜λ‚˜λ₯Ό ROW 라 ν•œλ‹€. ν•˜μ§€λ§Œ baas.io λŠ” 이것을 엔티티라고 λΆ€λ₯Έλ‹€.

자 μ•žμ„œ μƒμ„±ν–ˆλ˜ mycollctions μ»¬λž™μ…˜μ— μžλ™μ°¨ μ—”ν‹°ν‹°λ₯Ό λ„£λŠ” 방법을 μ’€ 더 μžμ„Ένžˆ μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜μž.

μ•± μΈμŠ€ν„΄μŠ€ κ΄€μ μ—μ„œ μ—”ν‹°ν‹° 생성

λ¨Όμ € μ½”λ“œλ₯Ό 보자.

var myFirstApp = new Baas.IO({
	orgName: 'YOUR_BAAS_IO_ID',		// baas.io ID
	appName: 'YOUR_BAAS_APP_ID',	// baas.io Application ID
  logging: false,
  buildCurl: false
});

//μ—”ν‹°ν‹° 생성
myFirstApp.createEntity(options, function (err, items) {
  if (err){
    //μ—λŸ¬
    alert('μ‹€νŒ¨');
  } else {
    //성곡
    alert('성곡');
  }
});

μœ„μ˜ μ½”λ“œλŠ” μ»¬λž™μ…˜μ— μ—”ν‹°ν‹° λͺ©λ‘ κ°€μ Έμ˜€κΈ° λ¬Έμ„œλ₯Ό ν†΅ν•΄μ„œ 이미 λ³΄μ•˜μ„ 것이닀. new Baas.IO λ₯Ό 톡해 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κ³  createEntity λ©”μ†Œλ“œλ₯Ό 톡해 μ§€μ •ν•œ type 즉 μ»¬λž™μ…˜μ— μ—”ν‹°ν‹°λ₯Ό μƒμ„±ν•˜λŠ” 방법이 μžˆλ‹€. 이것은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ΄€μ μ—μ„œ μƒμ„±ν•˜λŠ” 방법이닀.

이런 방식은 단일 μ»¬λž™μ…˜λ§Œ κ΄€λ¦¬ν•˜λ©΄ λ˜λŠ” μ•±μ—μ„œλŠ” μœ μš©ν•˜μ§€λ§Œ λ‹€μˆ˜μ˜ μ½œλž™μ…˜μ˜ 연관관계가 ν•„μš”ν•œ λ³΅μž‘ν•œ μ•±μ—μ„œλŠ” λΆˆνŽΈν•˜λ‹€.

μ»¬λž™μ…˜μ΄ μ—¬λŸ¬κ°œ μ‚¬μš©λ˜λŠ” μ•±μ—μ„œλŠ” μ»¬λž™μ…˜ λ‹¨μœ„μ—μ„œ μ—”ν‹°ν‹°κ°€ μΆ”κ°€λ˜κ±°λ‚˜ λ³€κ²½, μ‚­μ œλ˜λŠ” κ²½μš°κ°€ 많이 발 μƒν•œλ‹€.

λ‹€μŒμ— μ†Œκ°œν•  λ‚΄μš©μ€ μ»¬λž™μ…˜ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κ³  μ»¬λž™μ…˜ 객체에 μ—”ν‹°ν‹°λ₯Ό κ΄€λ¦¬ν•˜λŠ” 방법을 μ†Œκ°œν•œλ‹€.

  • μ»¬λž™μ…˜ μΈμŠ€ν„΄μŠ€ 생성

μ»¬λž™μ…˜ μΈμŠ€ν„΄μŠ€ 생성은 createCollection 의 μ½œλ°±ν•¨μˆ˜λ‘œ μ „λ‹¬λœ 두 번째 μΈμžμ΄λ‹€. λ‹€μŒμ˜ μ½”λ“œλ₯Ό 보자.

μœ μ˜μ‚¬ν•­

μ•„λž˜μ˜ μ½”λ“œλ₯Ό 직접 μ‹€ν–‰ν•΄ 보기 μœ„ν•΄μ„œλŠ” https://baas.io λ°μ΄ν„°λΈŒλΌμš°μ €μ— foocollections 와 barcollections μ»¬λž™μ…˜μ΄ 이미 μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€.

var fooCollection;	// foo collection μΈμŠ€ν„΄μŠ€
var barCollection;	// bar collection μΈμŠ€ν„΄μŠ€

var fooOptions = {
	type: "foocollections"
};

var barOptions = {
	type: "barcollections"
};

myFirstApp.createCollection(fooOptions, function(err, collectionObject) {
		//foo μ»¬λž™μ…˜ μΈμŠ€ν„΄μŠ€λ₯Ό κΈ€λ‘œλ²Œ λ³€μˆ˜μ— ν• λ‹Ή
		fooCollection = collectionObject;
});

myFirstApp.createCollection(barOptions, function(err, collectionObject) {
		//bar μ»¬λž™μ…˜ μΈμŠ€ν„΄μŠ€λ₯Ό κΈ€λ‘œλ²Œ λ³€μˆ˜μ— ν• λ‹Ή
		barCollection = collectionObject;
});

μœ„μ˜ μ½”λ“œλŠ” foocollections, barcollections λ‘κ°œμ˜ μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“œλŠ” μ½”λ“œμ΄λ‹€. μΈμŠ€ν„΄μŠ€κ°€ μƒμ„±λ˜μ—ˆλ‹€λ©΄ 이제 foocollections 에 μ—”ν‹°ν‹°λ₯Ό 생성해 보자.

μ½œλž™μ…˜ κ΄€μ μ—μ„œ μ—”ν‹°ν‹° μΆ”κ°€

var options = {
	name: 'ferrari',
	year: 1851
};

fooCollection.addEntity(options, function(err, entity) {
  if (err){
    //μ—λŸ¬
    alert('μ‹€νŒ¨');
  } else {
    //성곡
    alert('성곡');

    // μ½œλ°±ν•¨μˆ˜ 두 번째 인자둜 λ„˜μ–΄μ˜¨ entity λŠ” Baas.Entity μΈμŠ€ν„΄μŠ€λ‘œ μ „λ‹¬λœλ‹€.
  }
});

μœ μ˜μ‚¬ν•­

λ§Œμ•½ 생성이 λ˜μ§€ μ•Šκ³  "Uncaught TypeError: Cannot read property 'length' of undefined" μ—λŸ¬λ‚˜ 401 unauthorize μ—λŸ¬κ°€ λ°œμƒν•œλ‹€λ©΄ ν•΄λ‹Ή μ»¬λ ‰μ…˜μ˜ κΆŒν•œμ„ μ‚΄νŽ΄λ³Ό ν•„μš”κ°€ μžˆλ‹€. ν˜„μž¬ μœ μ €μ—κ²Œ ν•΄λ‹Ή μ»¬λ ‰μ…˜μ— μ—”ν‹°ν‹°λ₯Ό μΆ”κ°€ν•  수 μžˆλŠ” create κΆŒν•œμ΄ λΆ€μ—¬λ˜μ–΄ μžˆλŠ”μ§€ λ°μ΄ν„°λΈŒλΌμš°μ € role μ½œλ ‰μ…˜μ—μ„œ νŽΈμ§‘ν•  수 μžˆλ‹€.

λ‘€κ³Ό νΌλ―Έμ…˜κ³Ό κ΄€λ ¨ν•΄μ„œλŠ” λ³„λ„μ˜ νŽ˜μ΄μ§€λ₯Ό μ„€λͺ…ν•  에정이닀.