2017-01-02 2 views
0

"Totaljs Eshop"을 다운로드하여 설치했으며 제품 작성으로 제품 옵션 (즉, 제품 색상)을 정의 할 수 없다는 것을 알았습니다.변수 모델 옵션을 사용하여 제품 스키마를 작성하려는 nosql 모델 작성

NoSQL 내장 데이터베이스에 들어가서 models/product.js 파일을 살펴 보았습니다.

나는 참조 :

NEWSCHEMA('Product').make(function(schema) { 

schema.define('id', 'String(20)'); 
schema.define('pictures', '[String]'); 
schema.define('reference', 'String(20)'); 
schema.define('category', 'String(300)', true); 
schema.define('manufacturer', 'String(50)'); 
schema.define('name', 'String(50)', true); 
schema.define('price', Number, true); 
schema.define('priceold', Number); 
schema.define('description', String, true); 
schema.define('availability', 'String(40)'); 
schema.define('template', 'String(30)'); 
schema.define('body', String); 
schema.define('pictures2', '[String]'); 
schema.define('istop', Boolean); 
schema.define('isnew', Boolean); 
schema.define('linker', 'String(50)'); 
나는 다음과 같은 코드를 추가하는 시도

: 내가 말하는 오류를 얻고있다

schema.define('nicstrength', 'Array(0mg, 1.5mg, 3mg, 6mg, 9mg, 12mg)') 

을 :

======= 2017-01-02 02:50:21: Error: Schema: "nicstrength.Array(0mg, 1.5mg, 3mg, 6mg, 9mg, 12mg)" not found in "default". Error: Schema: "nicstrength.Array(0mg, 1.5mg, 3mg, 6mg, 9mg, 12mg)" not found in "default". 
at SchemaBuilderEntity.default (/Users/student/Dev/eshop/node_modules/total.js/builders.js:1138:23) 
at SchemaBuilderEntity.get.SchemaBuilderEntity.read (/Users/student/Dev/eshop/node_modules/total.js/builders.js:832:27) 
at Controller.$get.Controller.$read (/Users/student/Dev/eshop/node_modules/total.js/index.js:10247:19) 
at Controller.json_products_read (/Users/student/Dev/eshop/controllers/api.js:73:7) 
at Subscribe.doExecute (/Users/student/Dev/eshop/node_modules/total.js/index.js:9754:23) 
at Subscribe.execute (/Users/student/Dev/eshop/node_modules/total.js/index.js:9680:8) 
at Subscribe.doAuthorization (/Users/student/Dev/eshop/node_modules/total.js/index.js:9796:8) 
at /Users/student/Dev/eshop/node_modules/total.js/index.js:9707:9 
at F.onAuthorize (/Users/student/Dev/eshop/models/users.js:324:3) 
at Subscribe.prepare (/Users/student/Dev/eshop/node_modules/total.js/index.js:9694:3) 

내가 백엔드에 아주 새로운 오전, 그래서 이것이 사소한 질문이라면 사과하십시오. 여기

내가 초기 오픈 소스 프로젝트

https://github.com/akadop/eshop

답변

1

당신이 올바른 스키마 유형을 정의해야하고 Array(0mg, 1.5mg, 3mg, 6mg, 9mg, 12mg)이 유효 Total.js 스키마 유형이 아닌 갈래 내 저장소에 대한 링크입니다. 다음은 지원되는 모든 유형은 다음과 같습니다 https://docs.totaljs.com/latest/en.html#api~SchemaBuilder

빠른 수정 :

schema.define('nicstrength', ['0mg', '1.5mg', '3mg', '6mg', '9mg', '12mg']); 

그래서 필드가 정의 된 값에서 단지 하나 개의 값을 포함 할 필요가있다.

+0

고마워요! 이 작업을 수행 한 후에 제품 템플릿을 적절히 조정해야합니까? –

+0

물론 정의 된 값 대신에'String (5)'타입을 사용할 수 있습니다. Total.js 프레임 워크를 더 공부하는 것이 좋습니다. –

+0

다시 한번 감사드립니다. 나는 지금 당장 문서를보고 있는데, 나는 그것을 조금 더 이해한다고 믿는다. 사용자가 선택할 수있는 옵션 목록을 사용자에게 제공하려면 어떻게해야합니까? 양식 단추가 특정 제품의 사용자 지정 코드에 있어야합니까? –