λ°μ΄ν°λ² μ΄μ€μ λμΌν id
μλ κΈ°μ‘΄ νλͺ©μ΄ μ΄λ―Έ μ‘΄μ¬νλ κ²½μ° service.create(obj)
κ° μ€ν¨ν κ²μΌλ‘ μμνμ΅λλ€. μ΄κ²μ΄ feathers λ²μμ μλμ§, νΉμ λ°μ΄ν°λ² μ΄μ€ μλΉμ€ μΈν°νμ΄μ€(μ¬κΈ°μλ feathers-nedb) λλ feathers-hooks-commonμΈμ§ νμ€νμ§ μμ΅λλ€.
const feathers = require('feathers');
const NeDB = require('nedb');
const service = require('feathers-nedb');
const app = feathers()
app.use('/users', service({ Model: userModel(), id: 'email' }));
const users = app.service('/users');
let user = { email: '[email protected]', password: '11111', role: 'admin' }
Promise.all([
users.create(user),
users.create(user)
]).then(results => console.log(results))
.catch(err => console.log('Error occurred:', err));
function userModel() {
return new NeDB({
filename: 'users.db',
autoload: true
});
}
λ λ²μ§Έ users.create
κ°) μ€ν¨ν κ²μΌλ‘ μμνμ΅λλ€.
λμΌν μ¬μ©μκ° λ°μ΄ν°λ² μ΄μ€μ λ λ² μΆκ°λ©λλ€.
const { validate } = require('feathers-hooks-common')
/**
* Checks if item with same id already exists.
*/
module.exports = function unique () {
return validate((values, hook) => {
return hook.service.get(values[hook.service.id])
.catch(() => null) // not found, pass null to next .then
.then(res => res === null
? null
: Promise.reject(new Error(`${res[hook.service.id]} already exists in db`)))
})
}
νν¬λ₯Ό μ μΈνκ³ νν¬μ μΌλ°μ μΌλ‘ λμΉ λ¬Έμ κ° μμ΅λλ€. param
κ°μ
λλ€. μλ₯Ό λ€μ΄, μΈμ¦ μ 보λ get
μ ν¨κ» μ λ¬λμ§ μμ΅λλ€. stashBefore
νν¬κ° μ΄λ₯Ό μ²λ¦¬νλ λ°©λ²μ νμΈνμμμ€.
μ΄κ²μ ν¨μ¨μ±μ μν΄ μΌλ°μ μΌλ‘ λ°μ΄ν°λ² μ΄μ€μμ μ²λ¦¬ν΄μΌ νλ λ¬Έμ μ λλ€. νν¬λ‘ ꡬννλ κ²μ νμ€ν κ°λ₯νμ§λ§ NeDB κ³ μ μ μ½ μ‘°κ±΄ μΈλ±μ€λ₯Ό μ¬μ©νλ κ²λ§νΌ ν¨μ¨μ μ΄μ§λ μμ΅λλ€. https://github.com/louischatriot/nedb/wiki/Indexing
λμ μ£Όμ μ κ°μ¬ν©λλ€. λ€μμ κ°μ λ¬Έμ λ₯Ό κ²ͺκ³ μλ λ€λ₯Έ μ¬λλ€μ μν μ루μ μ λλ€.
function userModel() {
let Model = new NeDB({
filename: 'users.db',
autoload: true
});
Model.ensureIndex({ fieldName: 'email', unique: true }, err => {
if (err) throw err
});
return Model;
}
μ΄ λ¬Έμ λ λ«ν ν μ΅κ·Ό νλμ΄ μμκΈ° λλ¬Έμ μλμΌλ‘ μ κ²Όμ΅λλ€. κ΄λ ¨ λ²κ·Έμ λν μ΄ λ¬Έμ μ λν λ§ν¬λ₯Ό μ¬μ©νμ¬ μ λ¬Έμ λ₯Ό μ¬μμμ€.
κ°μ₯ μ μ©ν λκΈ
λμ μ£Όμ μ κ°μ¬ν©λλ€. λ€μμ κ°μ λ¬Έμ λ₯Ό κ²ͺκ³ μλ λ€λ₯Έ μ¬λλ€μ μν μ루μ μ λλ€.