2016-11-01 3 views
0

현재 React, Express, Massivejs, postgreSql 응용 프로그램을하고 있습니다. 나는 "TypeError : db.createList가 함수가 아닙니다."라는 오류 메시지가 나타납니다. 언제든지 내 포스트 포인트를 치려고합니다. 나는 그것이 올바른 것처럼 보이기 때문에 그것을 고치는 법을 모르겠습니다. "TypeError : db.createList가 함수가 아닙니다."

내 파일 구조 :

enter image description here

내 서버 파일은 다음과 같다 :

내 컨트롤러는 다음과 같습니다
var express = require('express'); 
var bodyParser = require('body-parser'); 
var cors = require('cors'); 
var massive = require("massive"); 
var connectionString = 'postgress://[email protected]/todo'; 
var massiveInstance = massive.connectSync({connectionString : connectionString}) 
var config = require('./config.js'); 


var app = module.exports = express(); 
app.set('db', massiveInstance); 

var listCtrl = require('./controller/listCtrl.js'); 

// **************** Middleware **************** 
app.use(express.static(__dirname + './../public')); 
app.use(bodyParser.json()); 

// ****************** Endpoints *************** 
app.post('/api/add/list', listCtrl.createList); 
app.get('/api/get/list', listCtrl.createList); 


app.get('*', function(req, res) { 
res.sendFile('index.html', { root: './public'}); 
}) 

app.listen(config.port, function() { console.log('Server initiated on port', config.port); }); 

:

var app = require('../server.js'); 
var db = app.get('db'); 

module.exports = { 

    createList: function(req, res, next) { 
    console.log('db'my); 
     db.createList([req.body.name], function(err, res) { 
      res.status(200).send('List created'); 
     }) 
    }, 

    readList: function(req, res) { 
     db.readList(function(err, res) { 
      if (err) { 
       console.log("readList failed"); 
      } else { 
       console.log("readList working " + req.body, req.params); 
      } 
     }) 
    } 

} 

내 createList.sql 파일 외모 이렇게 :

INSERT INTO list (
    name 
) 
VALUES (
    $1 
); 
+0

"createlist.sql"또는 "createList.sql"파일의 이름을 지정 했습니까? –

+0

틀린 이미지 죄송합니다. 그러나 나는 그것을 createList.sql이라고 명명했다. –

답변

0

The documentation은이 문제를 분명히합니다. 기본적으로 "db"폴더는 데이터베이스를 사용하는 스크립트가있는 위치가 아닌 프로젝트의 루트 디렉토리에 있어야합니다 (이 경우 "server /").

: (함께 "서버", "공개"등이 될 수 있도록), 또는 위치를 가리 키도록 scripts 속성을 구성 당신은 당신의 프로젝트의 루트 디렉토리에 "DB"를 이동해야 하나

var massiveInstance = massive.connectSync({ 
    scripts: "server/db", 
    connectionString 
}) 
관련 문제