0
할 일 목록을 만들어야하고 첫 번째 버전이 제대로 작동합니다 (데이터베이스 연결없이).node.js sqlite 데이터베이스 연결 (frontend angular.js)
index.html을
<div id="todoCard" ng-repeat="task in taskList">
<div id="label">
<label id="description" class="description" ng-class="{strike: task.done}">
<input type="checkbox" ng-model="task.done"/>
{{task.description}}
<table id="buttons">
<tr>
<td>
<button id="edit" ng-click="editTodo()">Edit</button>
</td>
<td>
<button id="del" ng-click="deleteTodo($index)">Del</button>
</td>
</tr>
</table>
</div>
</div>
controller.js
'use strict';
angular.module('toDoApp.controller',[])
.controller('toDoController',["$scope", function($scope){
$scope.newTask = "";
$scope.taskList = [
{description: "Buy airplane tickets", done:false},
{description: "Make hotel reservation", done:false},
{description: "Lorem Ipsum", done:true}
];
$scope.addTodo = function() {
$scope.taskList.push({description: $scope.newTask, done:false});
$scope.newTask = "";
}
$scope.deleteTodo = function(index) {
$scope.taskList.splice(index, 1);
}
}]);
그러나 그 후 나는 SQLite는 데이터베이스에 연결하고 데이터베이스에서 카드를 보여주고 싶었다. 여기
연결이다
가 factory.js
'use strict';
angular
.module('toDoApp')
.factory('toDoAppFactory', function(){
var sqlite3 = require('sqlite3').verbose();
var fs = require('fs');
// Setup database:
var dbFile = 'database.db';
var dbExists = fs.existsSync(dbFile);
// If the database doesn't exist, create a new file:
if(!dbExists)
{
fs.openSync(dbFile, 'w');
}
// Initialize the database:
var db = new sqlite3.Database(dbFile);
// Optional installation for newly created databases:
if(!dbExists)
{
db.run('CREATE TABLE `todocards` (' +
'`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,' +
'`created` TEXT NOT NULL,' +
'`deadline` TEXT NOT NULL,' +
'`done` INTEGER NOT NULL,' +
'`description` TEXT NOT NULL)');
}
// Insert some data using a statement:
var statement = db.prepare('INSERT INTO `todocards` (`created`, `deadline`, `done`, `description`) ' +
'VALUES (?, ?, ?, ?)');
statement.run('2016-05-09', '2016-05-12', Math.round(Math.random() * 1), 'Ipsum');
statement.finalize();
db.each("SELECT * FROM `todocards`", function (err, row) {
var taskList = JSON.stringify(row);
});
function getCards(taskList) {
return taskList;
}
return {
getCards: getCards
}
db.close();
});
controllers.js 는 수정되었습니다 :
factory.js 는 I를 index.html을 위해 포함 된
'use strict';
angular.module('toDoApp.controller',[])
.controller('toDoController',["$scope", function($scope, toDoAppFactory){
$scope.newTask = {};
$scope.taskList = toDoAppFactory.getCards();
}]);
console.log로 factory.js를 테스트했는데
var taskList = JSON.stringify(row);
에 배열이 있습니다. 그러나 뭔가 잘못되었습니다.
이 문제에 대한 도움을주십시오. 난 당신이 테이블 준비 데이터가 있다고 가정하겠습니다
에서
: – GEZ
이 변형 디버깅 : 행이 테이블에 밀어되지만, console.log (taskList)는 아무것도 보여주지 않습니다 ... – GEZ